返回介绍

9.2 Ansible 的安装

发布于 2024-01-29 22:54:23 字数 2880 浏览 0 评论 0 收藏 0

Ansible只需在管理端部署环境即可,建议读者采用yum源方式来实现部署,下面介绍具体步骤。

9.2.1 业务环境说明

为了方便读者理解,笔者通过虚拟化环境部署了两组业务功能服务器来进行演示。笔者的操作系统版本为CentOS release 6.4,自带Python 2.6.6。相关服务器信息如表9-1所示(CPU核数及Nginx根目录的差异化是为方便演示生成动态配置需要):

表9-1 业务环境表

9.2.2 安装EPEL

由于目前RHEL官网的yum源还没有得到Ansible的安装包支持,因此先安装EPEL作为部署Ansible的默认yum源。

RHEL(CentOS)5版本:rpm-Uvh http://mirror.pnl.gov/epel/5/i386/epel-release-5-4.noarch.rpm

RHEL(CentOS)6版本:rpm-Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm

9.2.3 安装Ansible

主服务器安装(主控端),代码如下:

#yum install ansible -y

9.2.4 Ansible配置及测试

第一步是修改主机与组配置,文件位置/etc/ansible/hosts,格式为ini,添加两台主机IP,同时定义两个IP到webservers组,更新的内容如下:

【/etc/ansible/hosts】

#green.example.com
#blue.example.com
192.168.1.21
192.168.1.22
[webservers]
#alpha.example.org
#beta.example.org
192.168.1.21
192.168.1.22

通过ping模块测试主机的连通性,分别对单主机及组进行ping操作,出现如图9-2所示的结果表示安装、测试成功。

图9-2 测试主机连通性

提示  由于主控端与被控主机未配置SSH证书信任,需要在执行ansible命令时添加-k参数,要求提供root(默认)账号密码,即在提示“SSH password:”时输入。很多人更倾向于使用Linux普通用户账户进行连接并使用sudo命令实现root权限,格式为:ansible webservers-m ping-u ansible-sudo。

9.2.5 配置Linux主机SSH无密码访问

为了避免Ansible下发指令时输入目标主机密码,通过证书签名达到SSH无密码是一个好的方案,推荐使用ssh-keygen与ssh-copy-id来实现快速证书的生成及公钥下发,其中ssh-keygen生成一对密钥,使用ssh-copy-id来下发生成的公钥。具体操作如下。

在主控端主机(SN2013-08-020)创建密钥,执行:ssh-keygen-t rsa,有询问直接按回车键即可,将在/root/.ssh/下生成一对密钥,其中id_rsa为私钥,id_rsa.pub为公钥(需要下发到被控主机用户.ssh目录,同时要求重命名成authorized_keys文件)。

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): (回车)
Enter passphrase (empty for no passphrase): (回车)
Enter same passphrase again: (回车)
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
8d:f0:47:c6:b9:55:5b:c0:0e:04:ec:e2:9c:38:f6:84 root@SN2013-08-020
The key's randomart image is:
+--[ RSA 2048]----+
|      ..o..o..|
|      ......o |
|    .  .= .o.  |
|     o.=.o  .  |
|     =So+    |
|    E =.     |
|    . +      |
|      .      |
|            |
+-----------------+

接下来同步公钥文件id_rsa.pub到目标主机,推荐使用ssh-copy-id公钥拷贝工具,命令格式:/usr/bin/ssh-copy-id[-i[identity_file]][user@]machine。本示例中我们输入以下命令同步公钥至192.168.1.21和192.168.1.22主机。

#ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.21
#ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.22

校验SSH无密码配置是否成功,运行ssh root@192.168.1.21,如直接进入目标root账号提示符,则说明配置成功。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文