设为首页 收藏本站
查看: 1618|回复: 0

[经验分享] Ansible系列命令用法详解与使用

[复制链接]

尚未签到

发表于 2018-7-28 13:31:50 | 显示全部楼层 |阅读模式
定义组变量  

[heihei]  
192.168.1.11
  
192.168.1.10:8080
  
[hah:vars]
  
ansible_ssh_root=‘root’
  

2.Ansible与正则
  正则匹配:Ansible支持正则表达式,但是开头需要加上“~”才可以
  All全量匹配:ansible all -m -a ‘ping’ OR ansible “*” -m -a ‘ping’   ansible 192.168.1.* -m -a ‘ping’
  逻辑或(or)匹配:指的是同时对多组或者多台主机同时执行时,相互之间用“:(冒号)”分隔开:ansible web1:web2  -m ping
  逻辑非匹配:主要针对多重条件的匹配规则:(所有web组中的机器但是不在tom组中的主机):ansible web:!tom -m ping
  逻辑与的匹配:也是针对多重条件匹配的:(web跟tom组同时存在的主机):ansible web&tom -m ping
  多条件支持:在web和tom组中的所有机器存在于haha组中且在huhu组中不存在的主机:ansible web:tom&haha:!huhu
  模糊匹配:  所有以web开头的主机:^web*
  域切割:
  

[WEB]  
Luna
  
Liuli
  
Webo
  
WEB[0]:代表:Luna
  

  正则匹配:Ansible支持正则表达式,但是开头需要加上“~”才可以
  *Ansible “~(haha|huhu|yiyi)”\.hehe\.(com.org) -m ping *
  检测haha.hehe.com.org、huhu.hehe.com、yiyi.hehe.com、haha.hehe.org、huhu.hehe.org、yiyi.hehe.org的存在**

3.ansible-doc
  ansible-doc是Ansible模块文档说明,针对每个模块都会有详细的用法说明以及应用案例介绍,功能。类似于Linux系统的man命令,使用方式如下:
  

`ansible-doc [options] [module...]  
列出支出的模块:
  
`ansible-doc -l`
  
模块功能说明:
  
`ansible-doc ping`
  

4. Ad-Hoc命令集介绍
  

Ansible <host-pattern> [options]  
常用选项:
  
-v,--verbose:输出更详细的执行过程信息
  
-i PATH,--inventory=PATH:指定inventory信息
  
-f NUM,--fork NUM:指定线程数
  
--private-key=PRIVATE_KEY_FILE:指定秘钥文件
  
-M DIRECTORY,--module-path=DIRECTORY:指定模块存放路径
  
-a ’ARGUMECTORY’,--args=’ARGUMENTS’:模块参数
  
-k,--ask-pass SSH:认证密码(通常在node机器上没有做过免秘钥的时候用)
  
-K,--ask-sudo-pass sudo:用户密码(--sudo时用)
  
-t DIRECTORY,--tree=DIRECTORY:输出信息至DIRECTORY目录下,结果文件以远程主机名命名
  
-t SECONDS,--timeout=SECONDS:指定远程主机最大超时,单位是秒
  
-u USERNAME,--username:指定远程主机以username运行命令
  
-l SUBSET,--limit=SUBSET:指定运行主机
  
-l ~REGEX:指定运行主机(正则)
  
--list-hosts:列出符合条件的主机列表,不执行任何命令
  
ansible和ansible-playbook默认会fork5个线程并发执行命令此时可使用-k num,根据自己主机硬件配置做调整,建议并发数是CPU的偶数倍
  

5. Ansible的模块使用
  想要详细了解Ansible的模块信息通过ansible-doc [option] [module]即可
  例如ansible-doc -l:列出所有可用模块
  ansible-doc yum:获取yum模块的help信息
  命令行模块:command模块
  文件传输模块:copy模块、fetch模块、template模块
  Copy模块:复制本机文件到各节点上,可修改属猪、属组、权限(src=ansibefile dest=nodefile owner= greoup=groupname mode=777)
  copy模块还可以实现备份功能:ansible all -m copy -a ‘src=file dest=file.bak backup=yes’
  Fetch模块:复制节点文件传输到本机(仅支持传输文件,如果是个目录的话可以归档压缩后传输)
  Ansible all -m fetch -a ‘src=nodefile dest=ansiblefile backup=yes’
  ansible批量复制秘钥到各节点并实现免秘钥登录
  ansible all -m copy -a ‘src=/root/.ssh/id_rsa.pub dest=/home/’
  ansible all -m shell -a ‘cat /home/id_rsa.pub >> /root/.ssh/au’
  command模块与shell模块的区别2
  Shell功能全面但是执行率低
  command不支持:逻辑运算符、条件判断符号、重定向命令或者是管道命令,但是使用shell模块的就不会报错
  cron模块
  ansible srvs -m cron -a 'name=&quot;disk check loger&quot; minute=15 hour=3 job=&quot;df -hT >> /tpm/df.log&quot;
  Yum模块
  安装epel源:ansinle all -m yum -a ‘name=epel-release state=latest’
  安装应用:ansible all -m yum -a ‘name=vsftpd state=latest’
  Service模块
  Service模块中的state支持的选择有一下几种:started、stopped、restarted、reloaded
  Ansible all -m service -a ‘name=vsftpd state=stop’
  Setup模块
  自动从远程主机获取可用于playbook中的变量
  Ansible all -m setup -a ‘fileter=*distribut’ 或者是ansible all -m setup | grep -i distribut
  debug模块
  此处暂时不用省略
  Script模块
  Ansible all -m script -a ‘/home/test.sh’(在节点服务器上执行test.sh脚本)

6.  Ansible-playbook
  ansible-playbook是日常应用使用次数最多的,其工作机制是“读取预先编写好的playbook文件实现批量管理”,使用如下:
  ansible-playbook restartservice.yaml
  *1)、子串不一定要用双引号标识
  2)、在缩排中空白字符的数目并不重要,只要相同阶层的元素左对齐就OK了(yaml里面不可以使用Tab字符)
  3)、允许在文件中加入选择性的空行,以增加可读性;
  4)选择性的符号“...”可以用来表示档案结尾(在利用串流的通信中,这非常的有用,可以在选择不关闭串流的情况下发送结束信号)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-542598-1-1.html 上篇帖子: 基于Centos6.6(7.2)源码安装Ansible-9470860 下篇帖子: How to Install Ansible AWX on CentOS 7-Arnold
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表