images\cherry_red.png1 Ansible
      images\cherry_blue.png1.1 ansible安装部署
   images\cherry_red.png2 功能模块
      images\cherry_blue.png2.1 playbook
      images\cherry_blue.png2.2 command模块
      images\cherry_blue.png2.3 shell模块
      images\cherry_blue.png2.4 copy模块
      images\cherry_blue.png2.5 package模块
      images\cherry_blue.png2.6 file模块
      images\cherry_blue.png2.7 fetch模块
      images\cherry_blue.png2.8 cron模块
      images\cherry_blue.png2.9 template模块
      images\cherry_blue.png2.10 service模块
      images\cherry_blue.png2.11 yum模块
      images\cherry_blue.png2.12 user模块
      images\cherry_blue.png2.13 group模块
      images\cherry_blue.png2.14 script模块
      images\cherry_blue.png2.15 setup模块
通过脚本运行安装部署
#!/bin/bash

yum install -y sudo
yum install -y openssh-server
yum install -y openssh-clients
yum install -y http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
if [ $? -ne 0 ]
then
     echo "依赖下载失败,请手动下载安装."
     exit 2
fi
yum install -y https://releases.ansible.com/ansible/rpm/release/epel-7-x86_64/ansible-2.9.5-1.el7.ans.noarch.rpm
if [ $? -ne 0 ]
then
     echo "ansible安装包下载失败,请手动下载安装."
     exit 1
fi
yum install -y vim
yum install -y net-tools
yum install -y initscripts

sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
mkdir /var/run/sshd
systemctl restart sshd


ansible 的配置文件为/etc/ansible/ansible.cfg,ansible 有许多参数,下面我们列出一些常见的参数:
inventory = /etc/ansible/hosts #这个参数表示资源清单inventory文件的位置
library = /usr/share/ansible #指向存放Ansible模块的目录,支持多个目录方式,只要用冒号(:)隔开就可以
forks = 5 #并发连接数,默认为5
sudo_user = root #设置默认执行命令的用户
remote_port = 22 #指定连接被管节点的管理端口,默认为22端口,建议修改,能够更加安全
host_key_checking = False #设置是否检查SSH主机的密钥,值为True/False。关闭后第一次连接不会提示配置实例
timeout = 60 #设置SSH连接的超时时间,单位为秒
log_path = /var/log/ansible.log #指定一个存储ansible日志的文件(默认不记录日志)

主机清单 vim /etc/ansible/hosts
images\2-1.png



ansible 配置公私钥,实现免密登陆
  上面我们已经提到过 ansible 是基于 ssh 协议实现的,所以其配置公私钥的方式与 ssh 协议的方式相同,具体操作步骤如下:
#1.生成私钥
[root@server ~]# ssh-keygen
#2.向主机分发私钥
[root@server ~]# ssh-copy-id root@172.17.0.3
[root@server ~]# ssh-copy-id root@172.17.0.4
...
...


测试连通性
ansible Test -m ping

images\2-2.png

发现每一台主机都是可以联通的!