Centos7安装ansible

CentOS下部署Ansible自动化工具

1.确保机器上安装的是 Python 2.6 或者 Python 2.7 版本:

python -V
在这里插入图片描述

2.查看yum仓库中是否存在ansible的rpm包
yum list|grep ansible

若不存在或是低版本可更换yum源或者采用源码安装

阿里云的yum源:http://mirrors.aliyun.com/repo/ 备份源文件,然后下载对应的版本至/etc/yum.repos.d/目录即可,如epel-6.repo (通过该yum源安装ansible会依赖python 2.6,如果python版本是2.7以上可能会安装失败)
在这里插入图片描述

3.安装ansible服务:
yum install ansible -y

PS:如果安装有问题,看文章的最下面安装试试看。

4.修改ansible配置和主机列表hosts:

1)关闭第一次使用ansible连接客户端时输入命令提示:

sed -i "s@\#host_key_checking = False@host_key_checking = False@g" /etc/ansible/ansible.cfg

指定日志路径:

sed -i "s@\#log_path = \/var\/log\/ansible.log@log_path = \/var\/log\/ansible.log@g" /etc/ansible/ansible.cfg

2)将所有主机ip加入到/etc/ansible/hosts文件中:

定义主机组和主机
在这里插入图片描述
默认ssh的端口为22端口,如果为其他端口号,可在主机名后面加上端口号,如 192.168.159.131:9604 ,也可以修改配置文件中的remote_port变量值

/etc/ansible/hosts也可以定义一个主机范围,如192.168.159.[100:200] ,表示192.168.159.100 - 192.168.159.200 的主机

5.创建和配置 SSH 公钥认证(免密码登录):

ssh-keygen -t rsa

按提示使用默认配置一路回车即可:
在这里插入图片描述
6.通过ansible将公钥分发至各主机上:

ansible all -m authorized_key -a "user=root key='{{ lookup('file', '/root/.ssh/id_rsa.pub') }}' path=/root/.ssh/authorized_keys manage_dir=no" --ask-pass -c paramiko

在这里插入图片描述
需要输入主机的密码,若是有的主机密码不一致,那么该主机会分发失败,此时只需再执行一遍命令输入该主机密码即可。或者先将密码相同的主机进行分组,然后依次指定主机组执行命令分批分发公钥。

此命令是通过追加的方式来推送公钥至authorized_keys,所以不用担心原来的文件内容会被覆盖。

到任意一台主机上查看,可以看到公钥已成功推送:
在这里插入图片描述

7.修改ansible配置,指定私钥文件路径:

sed -i "s@\#private_key_file = \/path\/to\/file@private_key_file = \/root\/.ssh\/id_rsa@g" /etc/ansible/ansible.cfg

8.测试:
在这里插入图片描述
可以在命令后面加上-vvvv参数查看详细的输出结果,尤其是在命令执行失败需要排错的时候非常有用。

9.自动化安装脚本:

注意:

①执行脚本前需要配置/root/hosts主机列表文件,内容如:

[root@localhost ~]# cat /root/hosts

[app]

192.168.159.130

[web]

192.168.159.131

②脚本分发公钥至远程主机时会提示输入远程主机的密码

③脚本通过yum方式安装

脚本内容:

#!/bin/bash 
# 
############################################# 
# author:ellen 
# describes:自动化安装和配置ansible 
# version:v1.0 
# updated:20170531 
############################################# 
# 
# 主机列表文件 
hostfile='/root/hosts'
# 错误信息以红色显示 
function _err 
{ 
echo -e "\033[1;31m[ERROR] $@\033[0m"
} 
# 一般信息以绿色显示 
function _info 
{ 
echo -e "\033[1;32m[Info] $@\033[0m"
} 
# 仅限指定用户运行本脚本 
if [ $EUID != "0" ];then
echo "Please use root run script!!!"
exit 1 
fi
rpm -qa|grep ansible 
if [ $? -eq 0 ];then
_err "ansible 已存在,无需重复安装!退出..."
exit 1 
fi
if [ -e $hostfile ];then
yum list|grep ansible 
if [ $? -ne 0 ];then
_err "仓库不存在ansible的rpm包,退出..."
exit 1 
else
yum install ansible -y 
if [ $? -eq 0 ];then
_info "ansible 安装完毕..."
sed -i "s@\#host_key_checking = False@host_key_checking = False@g" /etc/ansible/ansible.cfg 
sed -i "s@\#log_path = \/var\/log\/ansible.log@log_path = \/var\/log\/ansible.log@g" /etc/ansible/ansible.cfg 
cp $hostfile /etc/ansible/hosts
_info "$hostfile 已拷贝至 /etc/ansible/目录"
ssh-keygen -t rsa -P '' -f /root/.ssh/id_rsa
_info "请按以下提示输入 ${hostfile} 列表中的主机密码:"
ansible all -m authorized_key -a "user=root key='{{ lookup('file', '/root/.ssh/id_rsa.pub') }}' path=/root/.ssh/authorized_keys manage_dir=no" --ask-pass -c paramiko 
sed -i "s@\#private_key_file = \/path\/to\/file@private_key_file = \/root\/.ssh\/id_rsa@g" /etc/ansible/ansible.cfg 
_info "ansible 已部署完毕!"
else
_err "ansible 安装失败!"
fi
fi
else
_err "$hostfile 主机列表文件不存在,请检查!"
exit 1 
fi

ansible命令:

在另外两台机上执行ping命令:ansible group1 -m ping

复制本机文件到组group1:ansible group1 -m copy -a “src=/etc/hosts dest=/etc/”

帮group1安装软件:ansible group1 -m shell -a “yum install wget -y”

ansible myservers -a 'pwd

ansible myservers -m script -a “/opt/app/target.sh”

参考:https://www.cnblogs.com/jackyzm/p/9578005.html

此次测试总共有三台机,分别如下:

ansible服务器:10.0.0.20

client01:10.0.0.21

client02:10.0.0.22
一、安装ansible

方法一、

yum install epel-release -y

yum install ansible -y

方法二、

1、 python版本需要2.6以上,不过通过centos7都会默认安装上python2.7.5,查看方法:python -V

2、 添加yum 源

a、 vim /etc/yum.repos.d/ansible

b、 添加如下内容:

[epel]

name = all source for ansible

baseurl = https://mirrors.aliyun.com/epel/7/x86_64/

enabled = 1

gpgcheck = 0
[ansible]

name = all source for ansible

baseurl = http://mirrors.aliyun.com/centos/7.3.1611/os/x86_64/

enabled = 1

gpgcheck = 0

3、 yum clean all

4、 安装ansible:yum install ansible -y
二、配置ansible

1、 使用ansible前需实现ansible服务器对另外两台机的ssh无密码访问,操作如下:

a、 输入命令:ssh-keygen,一直按回车,直至完成操作;

b、 命令:ssh-copy-id root@10.0.0.21 ,然后输入连接密码即可实现无密码访问,另外一台机的设置方式一样,不再赘述。

2、 添加ansible客户机组,命令:vim /etc/ansible/hosts,在最后面添加如下内容:

[group1]

10.0.0.21

10.0.0.22

三、使用ansible

1、 在另外两台机上执行ping命令:ansible group1 -m ping

2、 复制本机文件到组group1:ansible group1 -m copy -a “src=/etc/hosts dest=/etc/”

3、 帮group1安装软件:ansible group1 -m shell -a “yum install wget -y”

PS:此次全部操作都是用root用户

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值