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

[经验分享] ansible学习系列2-ansible常用模块使用

[复制链接]

尚未签到

发表于 2018-1-2 19:59:36 | 显示全部楼层 |阅读模式
1. 查看支持的模块
  

[iyunv@localhost ~]# ansible-doc -l  

  这里我们看下ansible的支持的模块个数
  

[iyunv@localhost ~]# ansible-doc -l |wc -l   #查看支持的模块个数  

1039  
[iyunv@localhost
~]# ansible --version        #查看我们的ansible版本号  
ansible
2.3.1.0  
config
file = /etc/ansible/ansible.cfg  
configured module search path
= Default w/o overrides  
python version
= 2.6.6 (r266:84292, Aug 18 2016, 14:53:48) [GCC 4.4.7 20120313 (Red Hat 4.4.7-17)]  


2.获取模块的帮助
  这里我们使用ansible-doc获取下command模块的使用方式。
  

[iyunv@localhost ~]# ansible-doc command  


3.1 command模块
  command :作为ansible的默认模块,可以允许远程主机范围内的所有shell命令。
  注意: 在command的命令中含有像`$ HOME'这样的变量和像``<“',`”>“, `“”“”,“”;“”和“”&“'将无法正常工作(如果需要这些功能,请使用[shell]模块)
  

[iyunv@localhost ~]# ansible 192.168.168.11* -m command -a 'ip addr show dev eth0'  
192.168.168.115 | SUCCESS | rc=0 >>
  
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  
link/ether 00:50:56:29:8d:e2 brd ff:ff:ff:ff:ff:ff
  
inet 192.168.168.115/24 brd 192.168.168.255 scope global eth0
  
inet6 fe80::250:56ff:fe29:8de2/64 scope link
  
valid_lft forever preferred_lft forever
  

  
192.168.168.111 | SUCCESS | rc=0 >>
  
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  
link/ether 00:0c:29:77:77:91 brd ff:ff:ff:ff:ff:ff
  
inet 192.168.168.111/24 brd 192.168.168.255 scope global eth0
  
inet6 fe80::20c:29ff:fe77:7791/64 scope link
  
valid_lft forever preferred_lft forever
  


3.2 script模块
  功能:在远程主机上执行主控端的脚本,相当于scp+shell组合。
  

[iyunv@localhost ~]# ansible all -m script -a "/home/test.sh 12 34"  


3.3 shell模块
  功能:执行远程主机的shell脚本文件
  

[iyunv@localhost ~]# ansible all -m shell -a "/home/test.sh"  

  shell替代command执行
  

[iyunv@localhost ~]# ansible 192.168.168.11* -m shell -a 'ip addr show dev eth0'  
192.168.168.111 | SUCCESS | rc=0 >>
  
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  
link/ether 00:0c:29:77:77:91 brd ff:ff:ff:ff:ff:ff
  
inet 192.168.168.111/24 brd 192.168.168.255 scope global eth0
  
inet6 fe80::20c:29ff:fe77:7791/64 scope link
  
valid_lft forever preferred_lft forever
  

  
192.168.168.115 | SUCCESS | rc=0 >>
  
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  
link/ether 00:50:56:29:8d:e2 brd ff:ff:ff:ff:ff:ff
  
inet 192.168.168.115/24 brd 192.168.168.255 scope global eth0
  
inet6 fe80::250:56ff:fe29:8de2/64 scope link
  
valid_lft forever preferred_lft forever
  


3.4 copy模块
  功能: 实现主控端向目标主机copy文件。
  

[iyunv@localhost ~]# ansible all -m copy -a "src=/home/test.sh dest=/tmp/ owner=root group=root mode=0755"  #src 主控端文件位置
  #dest 被控端目标位置
  #owner 文件复制过去后的所有者
  #group 文件复制过去后的所属组
  #mode  文件的权限设定,执行a+x这种方式
  


3.5 stat模块
  功能: 获取远程文件的状态信息,包括atime,ctime,mtime,md5,uid,gid等信息。
  

[iyunv@localhost ~]# ansible all -m stat -a "path=/etc/sysctl.conf"  


3.6 yum模块
  功能: 安装软件包。
  

[iyunv@localhost ~]# ansible all -m yum -a "name=httpd state=latest disable_gpg_check=yes enablerepo=epel"  #name 包名
  #state (Choices: present, installed, latest, absent, removed)[Default: present]
  #disable_gpg_check:禁止gpg检查
  #enablerepo:只启动指定的repo
  


3.7 cron模块
  功能:远程主机crontab配置
  

[iyunv@localhost ~]# ansible all -m cron -a "name='test' hour='2-5' minute='*/5' day='1' month='3,4' weekday='1' job='ls -l' user=tom"  192.168.168.115 | SUCCESS => {
  "changed": true,
  "envs": [],
  "jobs": [
  "test"
  ]
  }
  192.168.168.111 | SUCCESS => {
  "changed": true,
  "envs": [],
  "jobs": [
  "test"
  ]
  }
  

  我们去被控主机看下生成的crontab作业
  

[iyunv@localhost ~]# crontab  -l -u tom  
#Ansible: test
  

*/5 2-5 1 3,4 1 ls -l  

  删除指定crontab
  

[iyunv@localhost ~]# ansible all -m cron -a "name=test state=absent"  


3.8 mount模块
  功能: 挂载文件系统
  

[iyunv@localhost ~]# ansible 192.168.168.111 -m mount -a "path=/mnt/data src=/dev/sd0 fstype=ext3 ots=ro state=present"  

  注:mount已经使用path代替了原来的name参数,但是name参数还是可以使用的。

3.9 service模块
  功能: 服务管理
  

[iyunv@localhost ~]# ansible all -m service -a "name=httpd state=restarted"    #启动服务  
[iyunv@localhost
~]# ansible all -m service -a "name=httpd state=running"      #查看服务状态  
[iyunv@localhost
~]# ansible all -m service -a "name=httpd state=stoped"       #停止服务  


3.10 user模块
  功能: 远程主机的用户管理
  

[iyunv@localhost ~]# ansible all -m user -a "name=jerry comment=' doubi jerry'"   #添加用户 详细参数参考ansible-doc user  
[iyunv@localhost
~]# ansible all -m user -a "name=jerry state=absent remove=yes"  #删除用户  

运维网声明 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-430929-1-1.html 上篇帖子: Ansible playbook基础组件介绍 下篇帖子: ansible register 之用法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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