点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!
# yum install ansible
#ansible –versionansible 2.5.3 config file
= None configured module search path
= [u'/root/.ansible/plugins/modules',u'/usr/share/ansible/plugins/modules'] ansible python module location
= usr/local/lib/python2.7/site-packages/ansible-2.5.3-py2.7.egg/ansible executable location
= /usr/local/bin/ansible python version
= 2.7.8 (default, May 29 2018, 14:06:44) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]
host:[port]
格式2:
[groupname]
host1
host2
host3
格式3:
[groupname]
host[1:3]
配置文件/etc/ansible/ansible.cfg,以下是常用配置项解释:
inventory = /etc/ansible/hosts
主机清单文件;
library = /usr/share/my_modules/
库文件存放目录;
remote_tmp = ~/.ansible/tmp
临时py命令文件存放在远程主机目录;
local_tmp = ~/.ansible/tmp
本机的临时命令执行目录;
forks = 5
默认并发数;
sudo_user = root
默认sudo用户;
ask_sudo_pass = True
每次执行ansible命令是否询问ssh密码;
remote_port = 22
远程主机端口号;
host_key_checking = False
禁用第一次连接的key检查;
log_path = /var/log/ansible.log
默认ansible不记录日志,启用此项开启日志记录。
4.1 ansible <host-pattern> [-m module_name] [-a args]
选项:
--version
查看版本相关信息。
-m module
指定模块,默认为command。
-v|–vv|-vvv
详细过程。
--list|--list-hosts
显示主机列表。
-k|--ask-pass
提示连接密码,默认Key验证。
-K|--ask-become-pass
提示输入sudo。
-C|--check
检查执行,并不是真正执行。
-T|--timeout=TIMEOUT
执行命令的超时时间,默认10s。
-u|--user=REMOTE_USER
执行远程执行的用户。
-b|--become
代替旧版的sudo切换。
4.2 host-pattern→
all
表示主机清单中所有的主机。
groupname
表示组中的所有主机。
host
指定某台主机,但是此主机必须在主机清单中。
支持通配符(*)、逻辑与(:&)或(:)非(:!)和正则表达式(~)。
4.3 ansible-doc
ansible-doc [options] [module...]
-a 显示所有模块的文档; -l, --list 列出可用模块; -s, --snippet 显示指定模块的playbook片段。
-C | --check 检查执行,不真正执行; -t tags 执行指定的标签; --list-tags 列出剧本中的所有的标签; --list-tasks 列出剧本中所有的任务; --list-hosts 列出剧本中所有的主机; --limit host_group_name 只针对主机列表中的主机执行; -v | -vv | -vvv 显示详细信息; -e 'var=value' 自定义变量赋值。
encrypt 加密; decrypt 解密; view 查看; edit 编辑加密文件; rekey 修改口令; create 创建新文件。
forks #:设置并发数; cd:切换主机组或主机; list:列出当前主机列表; help:获取帮助。
~]# ansible all -m shell -a 'echo $HOSTNAME'
~]# ansible all -m script -a '/root/ansible/host.sh'
backup 复制覆盖时先备份; content 指定一些内容当文件复制; dest 目标路径; mode 权限; owner 所有者; src 源路径。
~]# ansible all -m copy -a 'src=/home/test dest=/home/config backup=yes'
~]# ansible all -m yum -a 'name=vsftpd state=latest'
name 名称; job 作业; disabled=true | false 禁用|启用; state=absent 删除; day 天; hour 小时; minute 分钟; month 月; weekday 星期。
~]#ansible all -m cron -a 'minute=* weekday=1,3,5
job="/usr/bin/wall FBI warning" name=warningcron'~]#
ansible all -m cron -a 'disabled=true job="/usr/bin/wall FBI warning" name=warningcron'

本文作者:黄 凭(上海新炬中北团队)
本文来源:“IT那活儿”公众号





