一.简介
Ansible(www.ansible.com)
更加简洁的自动化运维工具,不需要在客户端上安装agent,基于Python开发。可以实现批量操作系统配置、批量程序的部署、批量运行命令。
特点
(1)、no agents:不需要在被管控主机上安装任何客户端;
(2)、no server:无服务器端,使用时直接运行命令即可;
(3)、modules in any languages:基于模块工作,可使用任意语言开发模块;
(4)、yaml,not code:使用yaml语言定制剧本playbook;
(5)、ssh by default:基于SSH工作;
(6)、strong multi-tier solution:可实现多级指挥。
优点
(1)、轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;
(2)、批量任务执行可以写成脚本,而且不用分发到远程就可以执行;
(3)、使用python编写,维护更简单,ruby语法过于复杂;
(4)、支持sudo。
二.安装准备
1、准备工作
准备两台机器 Centos6.7_64,这两台机器都关闭 selinux,清空 iptables 规则并保存。
master:192.168.1.190
slaver:192.168.1.191
设置hostname,分别为master和slave
主上设置hostname
# hostname master //临时生效
或者
# vim /etc/sysconfig/network //永久生效HOSTNAME=master
从上设置 hostname
# hostname slave //临时生效
或者
# vim /etc/sysconfig/network //永久生效HOSTNAME=slave
关闭防火墙
主和从都清空iptables
# iptables -F
主和从都关闭 selinux
# setenforce 0
2、编辑 hosts 文件
两台都设置,若机器太多,可以通过搭建 DNS,则不用在每台机器上设置这个
# vim /etc/hosts
192.168.1.190 master.test.com 192.168.1.191 slaver.test.com
3、设置 hostname
在 master 上
[[email protected] ~]# vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=master.test.com
在 slaver 上
[[email protected] ~]# vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=slaver.test.com
4、安装
[[email protected] ~]# yum install -y epel-release
[[email protected] ~]# yum install -y ansible
5、SSH密钥配置
1)生成密钥对
[[email protected] ~]# mkdir /root/.ssh [[email protected] ~]# chmod 700 /root/.ssh
[[email protected] ~]# ssh-keygen -t rsa
注意:直接回车即可,不用设置密钥密码。这样会在 root 家目录下生成 .ssh 目录,这里面也会生成两个文件 id_rsa 和 id_rsa.pub 。
[[email protected] ~]# ls -la /root/.ssh/ 总用量 16 drwx------. 2 root root 4096 4月 21 08:48 . dr-xr-x---. 4 root root 4096 4月 21 08:47 .. -rw-------. 1 root root 1675 4月 21 08:48 id_rsa -rw-r--r--. 1 root root 393 4月 21 08:48 id_rsa.pub [[email protected] ~]# cat /root/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwh7hzBqJJzn3Xd9nJg6P0+P3ftkV80JVPvMAWL13zbjw jW07eKswKd6VqaA6bbcJAk+ci3fP8Jq9pPaAvaaovzdkYgrCk5129UXRgoDMy/x2dpF1nj2nNBol+HR9 aOY6gAxlcJsUmswhm9/KcJu1mgvjjn0Dw5nwu4f8/B/DWEUHyrT5AC2ZA2ZVx9LL6wVM+3d1xyQY8w36 wk0fq1lS29fgkHeGZnKkoS52JuwZ0I5t6S2YU9OEuw7XQsTJU6e0yk/8bUo3K0YMxNO7nn0gvMfUoaBO MK9as6Go6r2/TM0EjsQwFWa4hliqBnsdhjcdQHPNIBh+5UyZuct6xZOMmw== [email protected]
[[email protected] ~]# mkdir /root/.ssh [[email protected] ~]# chmod 700 /root/.ssh [[email protected] ~]# vim /root/.ssh/authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwh7hzBqJJzn3Xd9nJg6P0+P3ftkV80JVPvMAWL13zbjw jW07eKswKd6VqaA6bbcJAk+ci3fP8Jq9pPaAvaaovzdkYgrCk5129UXRgoDMy/x2dpF1nj2nNBol+HR9 aOY6gAxlcJsUmswhm9/KcJu1mgvjjn0Dw5nwu4f8/B/DWEUHyrT5AC2ZA2ZVx9LL6wVM+3d1xyQY8w36 wk0fq1lS29fgkHeGZnKkoS52JuwZ0I5t6S2YU9OEuw7XQsTJU6e0yk/8bUo3K0YMxNO7nn0gvMfUoaBO MK9as6Go6r2/TM0EjsQwFWa4hliqBnsdhjcdQHPNIBh+5UyZuct6xZOMmw== [email protected]
2)把公钥(id_rsa.pub)内容放到本机和远程客户机的 /root/.ssh/authorized_keys 里面
本机
[[email protected] ~]# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
三.验证一下有没有成功
[[email protected] ~]# ssh master.test.com
[email protected]‘s password:
Last login: Thu Apr 21 08:35:34 2016 from 192.168.1.110
[[email protected] ~]#