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

[经验分享] 3.2、Ansible单命令测试

[复制链接]

尚未签到

发表于 2018-1-2 19:31:58 | 显示全部楼层 |阅读模式
  0.Ansible的group支持all、通配符(*)、IP地址
  1.查看Ansible的版本
  $  ansbile  --version
[iyunv@test ~]# ansible --version

  ansible 1.7.2
[iyunv@test ~]#

  2.消除首次ssh登录时要求输入yes确认
  在所有机器上修改/etc/ssh/ssh_config文件中设置StrictHostKeyChecking no即可(默认为 ask )
[iyunv@master ~]# grep "StrictHostKeyChecking" /etc/ssh/ssh_config

  StrictHostKeyChecking no
  3.拷贝文件
  ansible <groupname> -m copy -a "src=/etc/ssh/ssh_config dest=/etc/ssh/ssh_config owner=root group=root mode=644 force=yes"
  示例:
[iyunv@test ~]# ansible all -m copy -a "src=/etc/ssh/ssh_config dest=/etc/ssh/ssh_config owner=root group=root mode=644 force=yes"

  192.168.91.135 | success >> {
  "changed": true,
  "dest": "/etc/ssh/ssh_config",
  "gid": 0,
  "group": "root",
  "md5sum": "d27d7cc9767512b64c84d06544e01546",
  "mode": "0644",
  "owner": "root",
  "size": 2072,
  "src": "/root/.ansible/tmp/ansible-tmp-1476168613.68-180284084445387/source",
  "state": "file",
  "uid": 0
  }
[iyunv@test ~]#

  4.查看所有机器的磁盘情况
  ansible <groupname> -m shell -a "df -h" -k
  5.测试机器的连通性
  ansible <groupname> -m ping
  6.Ansible所有的模块
  http://docs.ansible.com/ansible/list_of_all_modules.html
  7.将本机上的配置文件组装发送到远程主机
  ansible <groupname> -m assemble -a "src=/root/configure dest=/root/test/a.conf remote_src=False
  8.将本机上的配置文件组装发送到远程主机,带分隔符
  ansible <groupname> -m assemble -a "src=/root/configure dest=/root/test/a.conf remote_src=False delimiter='####'"
  9.设定权限进行拷贝
  ansible <groupname> -m copy -a "src=/root/configure/a.conf dest=/root/test owner=root group=root mode=0777"
  10.拷贝的时候备份
  ansible <groupname> -m copy -a "src=/root/kel/1 dest=/tmp/kel owner=root group=root backup=yes"
  11.拷贝文件之后进行验证
  ansible <groupname> -m copy -a "src=/etc/sudoers dest=/tmp/2 validate='visudo -cf %s'"
  12. fetch一个文件进行保存
  ansible <groupname> -m fetch -a "src=/root/123 dest=/root"
  13.指定路径目录进行保存
  ansible <groupname> -m fetch -a "src=/root/Ssh.py dest=/root/kel/ flat=yes"
  14. 设置文件属性
  ansible <groupname> -m file -a "path=/root/123 owner=kel group=kel mode=0644"
  15.创建目录
  ansible <groupname> -m file -a "path=/tmp/kel state=directory mode=0755"
  16.修改权限
  ansible <groupname> -m file -a "path=/tmp/kel mode=0444"
  17.创建软连接
  ansible <groupname> -m file -a "src=/tmp/1 dest=/tmp/2 owner=kel state=link"
  18.添加其中的节的值
  ansible <groupname> -m ini_file -a "dest=/tmp/kel section=kel option=kel value=kel mode=0600 backup=yes"
  19.基础模块使用
  19.1 并行和Shell命令
  设置ssh-agent记住认证
  $ ssh-agent bash
  $ ssh-add ~/.ssh/id_rsa
  19.2  10秒内重启
  $ansible <groupname> -a "/sbin/reboot" -f 10
  19.3 在默认情况下,ansible使用的是当前用户,当你需要使用其他用户的时候,可以使用选项-uusername
  $ ansible <groupname> -a"/usr/bin/foo" -u username
  19.4  要使用sudo的时候
  $ansible <groupname> -a "/usr/bin/foo" -u username --sudo[--ask-sudo-pass]
  --ask-sudo-pass(-K)此选项是用来询问sudo的密码,如果设置了,如果未设置,那么无需使用
  19.5  也可以在sudo到别的用户来进行执行
  $ansible <groupname> -a "/usr/bin/foo" -uusername -U otheruser[--ask-sudo-pass]
  参数-f 10表示并发进行,也就是10个进程同时运行,在使用的时候,默认的情况下为5,选择合适的数据,从而使得系统能够进行处理
  参数-m表示选择的模块,在默认情况下,command是默认的模块
  Command不适用于有shell变量的情况,也不适用于有管道符的情况,如果要使用此种情况,那么可以使用shell模块
  19.6  使用Shell模块
  $ansible <groupname> -m shell -a 'echo $TERM'
  20.  文件传输
  20.1  传输文件到很多主机
  $ ansible <groupname> -mcopy -a "src=/etc/hosts dest=/tmp/hosts"
  20.2  修改用户和用户组权限
  $ ansible <groupname> -mfile -a "dest=/srv/foo/a.txt mode=600"
  $ ansible <groupname> -mfile -a "dest=/srv/foo/b.txt mode=600 owner=mdehaan group=mdehaan"
  20.3   创建目录
  $ ansible <groupname> -mfile -a "dest=/path/to/c mode=755 owner=mdehaan group=mdehaanstate=directory"
  21. 管理包
  21.1   确定一个包已经安装,但是不更新
  $ ansible <groupname> -myum -a "name=acme state=present"
  21.2   确定一个包安装的是指定版本
  $ ansible <groupname>-m yum -a "name=acme-1.5 state=present"
  21.3  确定一个包是最新包
  $ ansible <groupname>-m yum -a "name=acme state=latest"
  21.4   确定一个包未安装
  $ ansible <groupname>-m yum -a "name=acme state=absent"
  22. 用户和用户组
  22.1   创建用户和管理已经存在的用户和组
  $ ansible <groupname>-m user -a "name=foo password=<crypted password here>"
  $ ansible <groupname>-m user -a "name=foo state=absent"
  23. 服务管理
  23.1 确定一个服务正在运行
  $ ansible <groupname> -mservice -a "name=httpd state=started"
  23.2  重启一个服务
  $ ansible <groupname>-m service -a "name=httpd state=restarted"
  23.3   确定一个服务是停止的
  $ ansible <groupname>-m service -a "name=httpd state=stopped"
  24.限制后台运行时间
  24.1   后台运行总是耗费比较长的时间,从而其状态在随后总是能够查看的,如果踢掉主机,又不想轮训
  $ ansible <groupname>-B 3600 -P 0 -a "/usr/bin/long_running_operation --do-stuff"

  24.2   如果要检查服务的状态,可以使用模块async_status,传递job>  $ ansible <groupname>-m async_status -a "jid=488359678239.2844"
  24.3   轮训是内建的
  $ ansible <groupname> -B1800 -P 60 -a "/usr/bin/long_running_operation --do-stuff"
  参数-B表示运行最多30分钟,30*60,-P 60 轮训其状态每60S,
  当时间运行在-B参数后的时间之后,此服务会被停止运行。
  可以使用参数—forksvalue,来确保服务尽快运行
  25.收集信息
  $ ansible <groupname> -msetup
  来自 <http://www.cnblogs.com/LuisYang/p/5961001.html>

运维网声明 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-430913-1-1.html 上篇帖子: ansible常用的一些模块 下篇帖子: ansible基础☞安装方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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