ansible软件安装
#Ansible仓库默认不在yum仓库中,因此需要下载并启用epel仓库
yum install -y ansible #需要依赖配置好el7源
ansible配置文件,host_key_checking = False 注释去掉第一连通不会提示
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日志的文件(默认不记录日志)
ansible主机清单
直接指明主机地址或主机名
192.168.0.2或者域名 #ip,host1做了免密登录 可以直接ssh访问,没做免密需要设置密码
192.168.0.[1:255] #ip段
192.168.0.2 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=pzz #增加用户名密码,不需要ssh免密,挺好的,不需要免密操作
ansible常用模块
ansible 主机清单中的主机组  -m 模块 -a 模块需要的参数
ansible [主机组haha] -i /etc/ansible/hosts2024 -m ping #-i 指定配置文件
shell模块
ansible 主机分组 -m  shell  -a  ‘shell命令’   #shell比command高级点,可以	用管道等特殊符号
--chdir #在远程主机上运行命令前,提前进入目录
--creates #判断指定文件是否存在,如果存在,不执行后面的操作
案例:
ansible dd -i /etc/ansible/hosts_2024 -m shell -a "ifconfig | awk 'NR==2 {print \$2}'"
cron模块
minute/hour/day/month/weekday				#分/时/日/月/周
name #任务计划的名称
user #指定计划任务属于哪个用户,默认是root用户
Script模块
ansible 主机分组 -m  script  -a  ‘脚本.sh’    #管理端编写脚本,1传输脚本到	被管理端在执行,被管理脚本在隐藏文件中
File 模块
-path				#路径
--src #创建软连接
--onwer #所有者
--group #组
--mode #权限
--state #状态模式,state=directory创建目录,state=file默认更新文件不存在不创建 state=touch #创建文件 state=link 创建软连接 state=absent删除
#案例file模块
ansible web -m file -a 'path=/root/shenchao state=directory' #案例创建目录
ansible web -m file -a 'path=/root/shenchao/shen.txt state=touch' #创建目录
ansible web -m file -a 'src=/root/shenchao/shen.txt path=/tmp/yang.txt state=link' #创建软连接
ansible web -m file -a 'path=/root/yang.txt state=absent' #删除文件与目录
ansible web -m file -a 'path=/root/wangyaoxiang.txt owner=redis group=redis mode=777 state=touch' #创建文件添加权限
Copy模块
--src					#源
--dest #目标
--backup #覆盖前进行备份
--onwer #所有者
--group #组
--mode #权限
#Copy案例
ansible web -m copy -a 'src=/etc/hosts dest=/tmp' #文件拷贝到目标/tmp下
ansible web -m copy -a 'src=/etc/hosts dest=/tmp backup=yes' #目标文件提前备份
Systemd 服务管理模块
ansible web -m systemd -a 'name=firewalld state=stopped' 			#关闭防火
Yum模块