ansible自动化运维

环境

ansible服务器: 122.*.*.62 (centos7)
服务器1:119.*.*.35 (centos7)

安装ansible

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

添加yum源

vim /etc/yum.repos.d/ansible

添加如下内容

                     [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

执行yum刷新,然后安装

yum clean all
yum install ansible -y
配置ansible

在ansible服务器上执行

ssh-keygen  #一直回车,直到成功
ssh-copy-id root@119.\*.\*.35  #然后输入连接密码即可实现无密码访问,如果有其他服务器,一样的设置方式,
注意:

有的服务器会修改登录端口号,那上面的语句可以改成如下,加入端口号

ssh-copy-id -p 17725 root@119.\*.\*.35

如果访问还是不行,提示如下


ansible自动化运维_第1张图片
image.png

修改ansible服务器中的ssh配置 /etc/ssh/ssh_config,在最后面加入如下

StrictHostKeyChecking no
UserKnownHostsFile /dev/null

修改好配置后,重新启动sshd服务即可。

centos7重启ssh服务命令为

systemctl restart sshd.service

重新执行上面的命令,如下,表示成功


ansible自动化运维_第2张图片
image.png

这时ansible和服务器1的authorize_keys 里面的key会相同

重启ssh

systemctl restart sshd.service
配置ansible host文件
vim /etc/ansible/hosts


gaohua ansible_ssh_host=119.29.* ansible_ssh_user="root" ansible_ssh_pass="11111" ansible_ssh_port=17725

如下配置,


ansible自动化运维_第3张图片
image.png

因为服务器1修改了默认端口号22,这里则需要配置port,否则不用配置

如果是多台服务器位于同一个分组,则在对应的 [group1]加多行的服务器ip即可

测试

我现在把ansible中的/www/test.php 复制到对应服务器中 /www目录中,执行如下命令

ansible group1 -m copy -a "src=/www/test.php dest=/www"
ansible自动化运维_第4张图片
image.png

或者用这个来测试

ansible all -m ping
image.png

到此说明ansible已经搭建成功,可以正常使用了

基本命令

1、执行远程的/www目录中的 clear.sh文件

ansible group -m shell -a "sh /www/clear.sh chdir=/www"

2、上传ssh文件到远程服务器,并赋予可执行权限

ansible group -m copy -a "src=/www/clear.sh dest=/www mode=0755"

3、添加计划任务到远程crontab中
每天0时0分执行 /www/mysqlback.sh脚本

ansible group -m cron -a 'name=mysql_back minute=0 hour=0 job="/www/mysqlback.sh &>/dev/null"'

你可能感兴趣的:(ansible自动化运维)