ansible是一个基于Python开发的自动化运维工具
ansible的功能实现基于SSH远程连接服务
ansible可以实现批量系统配置,批量软件部署,批量文件拷贝,批量运行命令等功能

特点
1)不需要单独安装客户端,基于系统自带的sshd服务,sshd就相当于ansible的客户端
2)不需要服务端
3)需要依靠大量的模块实现批量管理
4)配置文件/etc/ansible/ansible.cfg

管理端安装ansible(需要epel.repo源)

yum安装(centos7可直接安装)
 yum -y install epel*
 yum -y install ansible
 确认安装:ansible --version相关配置文件
 /etc/ansible/ansible.cfg        主配置文件,配置ansible工作特性
 /etc/ansible/hosts                主机清单
 /etc/ansible/roles/               存放角色的目录ansible主配置文件
 /etc/ansible/ansible.cfg[defaults]
 #inventory     = /etc/ansible/hosts     //主机列表配置文件
 #library   = /usr/share/my_modules/  //库文件存放目录
 #remote_rmp = $HOME/.ansible/tmp              //临时py命令文件存放在远程主机目录
 #local_tmp     = $HOME/.ansible/tmp              //本机临时目录执行目录
 #forks     = 5  //默认并发数(同时5台机器执行)
 #sudo_user    = root     //默认sudo用户
 #ask_sudo_pass    = True    //每次执行ansible命令是否询问ssh密码
 #ask_pass     = True
 #remote_port       = 22
 host_key_checking     = False   //检查对应服务器的host_key,建议取消注释
 log_path       = /var/log/ansible.log //日志文件#所有被管理端需要安装:
#yum -y install libselinux-python(CentOS7默认已安装)
配置文件修改:
vim /etc/ansible/ansible.cfg
host_key_checking = False    #(将注释去掉,以防如下报错)
deprecation_warnings = False
command_warnings = False
添加被管理端ip清单:
vim /etc/ansible/hosts
[woyun]
12.7.14.17 ansible_ssh_user=root ansible_ssh_pass="@AV2MPqDNP36UDG*otSvAW3O" ansible_ssh_port=12345
#ansible_ssh_user:ssh连接的用户名
 #ansible_ssh_pass:ssh连接的密码#ansible_ssh_port:ssh连接的端口
 #如果设置了ssh免密钥连接的话,hosts文件只配置IP即可。

注意:模块[woyun]自定义,有特殊符号的密码要用双引号

ansible命令测试:
ansible -m ping all
调用ansible内置的copy模块:
先创建一个临时测试文件:echo "111" >/tmp/cjk.txt
ansible woyun -m copy -a "src=test/safedog_an_linux64_2.8.21207/ dest=/usr/local/src"


ansible安装不成功是为什么 ansible安装软件_运维

查看copy内容是否正确:

ansible安装不成功是为什么 ansible安装软件_配置文件_02

远程执行脚本测试:

#先创建一个脚本,再将脚本分发到各个机器上去
echo "echo '测试成功!'" > /tmp/test.sh
 echo +x /tmp/test.sh
 ansible benn -m copy -a "src=/tmp/test.sh dest=/tmp/ mode=0755 backup=yes"


#注意:dest路径的写法,若是不存在的目录,结尾要加斜线(/tmp/),否则默认不会创建目标目录

#特别提示:
如果目标路径存在文件,并且目标文件和你想要copy的文件完全相同的话,也会导致ansilbe的copy功能失效

远程批量执行脚本

ansible安装不成功是为什么 ansible安装软件_ansible安装不成功是为什么_03

常用模块:每个模块就是一个功能

ansible安装不成功是为什么 ansible安装软件_服务器_04

ansible-doc -l 查看所有的模块
ansible-doc -s service 查看指定模块用法