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

[经验分享] Ansible_自动化运维《Ansible之命令-2》

[复制链接]

尚未签到

发表于 2018-1-2 19:20:58 | 显示全部楼层 |阅读模式
  上一篇Ansible_自动化运维之《Ansible之初识-1》文章主要介绍了ansible的安装和主机组的配置,本篇Ansible_自动化运维之《Ansible之命令-2》将重点介绍 Ansible的ad-hoc临时命令的使用。
  说明:本篇Ansible的ad-hoc临时命令使用,将会使用部分模块,例如[copy]、[ping]、[shell]、[command]等,可能会不便于理解,文章尽量详细说明。如果想尽快了解ansible的模块功能,请阅读下一篇《Ansible之模块-3》。


  • 1.Ansible命令

    • 1.1 Ad-hoc说明

  Ansible中有一个很重要的功能就是可以执行ad-hoc命令,它表示即时、临时的意思,即表示一次性的命令。与之相对的是ansible playbook功能,playbook适用于批量部署环境,一般不用经常改动。而ad-hoc命令,利用ansible的模块功能,适用于业务变更、临时检查和维护等操作场景,比如批量推送一个配置文件,重启某个服务,安装一些包等等。




    • 1.2 命令结构  ansible命令行执行格式一般为:
        

      ansible  [hosts]  –m  [module]  –a  [parameters]  

        其中:
      [hosts] 指需要运行或者执行的主机或者主机组

      [module] 指运行时需要使用的模块

      [parameters] 指模块后跟的参数设置

        例如:
        

      #指定主机IP  

      #ansible 192.168.100.2 –m copy –a "src=/tmp/test.txt dest=/tmp/test1.txt"  
      #指定主机组
        
      #ansible webserver –m copy –a "src=/tmp/test.txt dest=/tmp/test2.txt"
        6 #
        







    • 1.3 执行测试  

      [iyunv@ansible ~]# ansible 172.16.12.241 -m ping  
      172.16.12.241 | SUCCESS => {
        
           "changed": false,
        
           "ping": "pong"
        
      }
        
      [iyunv@ansible ~]
        



  • 2.Ansible AD-HOC 临时命令的使用

    • 2.1 查看主机运行时间  

      [iyunv@ansible ~]# ansible all -m shell -a "uptime"  
      172.16.12.241 | SUCCESS | rc=0 >>
        
        21:54:13 up  1:52,  2 users,  load average: 0.00, 0.01, 0.05
        

        
      172.16.12.243 | SUCCESS | rc=0 >>
        
        21:54:12 up  1:52,  1 user,  load average: 0.00, 0.01, 0.01
        

        
      172.16.12.242 | SUCCESS | rc=0 >>
        
        21:54:12 up  1:52,  1 user,  load average: 0.00, 0.01, 0.02
        

        
      [iyunv@ansible ~]#
        

        说明: -m shell表示使用shell模块;

      • -a 表示使用的命令或者参数,shell模块所使用的是命令,查看运行时间,所以使用"uptime"。  


    • 2.2 查看主机 / 分区使用情况  

      [iyunv@ansible ~]# ansible all -m shell -a "df -h /"  
      172.16.12.241 | SUCCESS | rc=0 >>

        
      Filesystem                           >  
      /dev/mapper/centos_wjh--centos7-root   48G  3.2G   45G   7% /
        

        
      172.16.12.242 | SUCCESS | rc=0 >>

        
      Filesystem                           >  
      /dev/mapper/centos_wjh--centos7-root   48G  2.6G   45G   6% /
        

        
      172.16.12.243 | SUCCESS | rc=0 >>

        
      Filesystem                           >  
      /dev/mapper/centos_wjh--centos7-root   48G  2.6G   45G   6% /
        

        
      [iyunv@ansible ~]#
        


    • 2.3 查看主机组 /etc/chrony.conf配置文件的权限及详细信息  

        

      [iyunv@ansible ~]# ansible all -m shell -a "ls -l /etc/chrony.conf"  
      172.16.12.241 | SUCCESS | rc=0 >>
        
      -rw-r--r--. 1 root root 1161 Feb 13 03:28 /etc/chrony.conf
        

        
      172.16.12.243 | SUCCESS | rc=0 >>
        
      -rw-r--r--. 1 root root 25 Feb 13 03:28 /etc/chrony.conf
        

        
      172.16.12.242 | SUCCESS | rc=0 >>
        
      -rw-r--r--. 1 root root 25 Feb 13 03:28 /etc/chrony.conf
        

        
      [iyunv@ansible ~]#
        


    • 2.4 推送test.conf 配置文件到 172.16.12.241 的 /etc/目录下,并修改文件名为 ttt.conf ,权限为600  

      [iyunv@ansible ~]# ansible 172.16.12.241 -m copy -a "src=test.conf dest=/etc/ttt.conf mode=0600 "  
      172.16.12.241 | SUCCESS => {
        
           "changed": true,
        
           "checksum": "dff19e48593efc79207494d625ddc4a22769ec2d",
        
           "dest": "/etc/ttt.conf",
        
           "gid": 0,
        
           "group": "root",
        
           "md5sum": "d0bab2e27173ed4bc5195da29d21920f",
        
           "mode": "0600",
        
           "owner": "root",
        
           "size": 1062,
        
           "src": "/root/.ansible/tmp/ansible-tmp-1487041285.77-71823315308297/source",
        
           "state": "file",
        
           "uid": 0
        
      }
        
      [iyunv@ansible ~]#
        


    • 2.5 验证ttt.conf文件  

        

      [iyunv@ansible ~]# ansible 172.16.12.241 -m command -a "ls -l /etc/ttt.conf"  
      172.16.12.241 | SUCCESS | rc=0 >>
        
      -rw------- 1 root root 1062 Feb 13 22:01 /etc/ttt.conf
        

        
      [iyunv@ansible ~]#
        #说明:
        #command与shell模块使用方法几乎相同。
        

        由此看见文件确实是推送成功,并且权限和文件名均已修改成功。


  总结:
  本篇Ansible_自动化运维之《Ansible之命令-2》文章主要绍了Ansible的ad-hoc临时命令的使用。可能由于并未深入了解ansible的模块功能,所以部分命令内容不便于理解,下一篇 Ansible_自动化运维之《Ansible之模块-3》将重点介绍 Ansible的常用模块的使用,敬请关注。

运维网声明 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-430909-1-1.html 上篇帖子: ansible-palybook 下篇帖子: 《Ansible权威指南》笔记(1)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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