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

[经验分享] ansible常用命令大全

[复制链接]

尚未签到

发表于 2018-1-2 17:31:33 | 显示全部楼层 |阅读模式
  ansible 默认提供了很多模块来供我们使用。在 Linux 中,我们可以通过 ansible-doc -l 命令查看到当前 ansible 都支持哪些模块,通过 ansible-doc  -s  模块名  又可以查看该模块有哪些参数可以使用。
  我们常用的几个模块:
  copy    file      cron   group   user    yum   service   script    ping     command     raw    get_url    synchronize
  ansible '*' -m command -a 'uptime'
  '*':自己定义的主机       -m command:命令
  # 指定节点上的权限,属主和数组为root
  ansible '*' -m file -a "dest=/tmp/t.sh mode=755 owner=root group=root"
  #指定节点上定义一个计划任务,每隔3分钟到主控端更新一次时间
  ansible '*' -m cron -a 'name="custom job" minute=*/3 hour=* day=* month=* weekday=* job="/usr/sbin/ntpdate 172.16.254.139"'
  # 指定节点上创建一个组名为aaa,gid为2017的组
  ansible all -m group -a 'gid=2017 name=a'
  # 在节点上创建一个用户aaa,组为aaa
  ansible all -m user -a 'name=aaa groups=aaa state=present'
  删除用户示例
  ansible all -m user -a 'name=aaa groups=aaa remove=yes'
  # 在节点上安装httpd
  ansible all -m yum -a "state=present name=httpd"
  # 在节点上启动服务,并开机自启动
  ansible all -m service -a 'name=httpd state=started enabled=yes'
  # 检查主机连接
  ansible '*' -m ping
  # 执行远程命令
  ansible '*' -m command -a 'uptime'
  # 执行主控端脚本
  ansible '*' -m script -a '/root/test.sh'
  # 执行远程主机的脚本
  ansible '*' -m shell -a 'ps aux|grep zabbix'
  # 类似shell
  ansible '*' -m raw -a "ps aux|grep zabbix|awk '{print \$2}'"
  # 创建软链接
  ansible '*' -m file -a "src=/etc/resolv.conf dest=/tmp/resolv.conf state=link"
  # 删除软链接
  ansible '*' -m file -a "path=/tmp/resolv.conf state=absent"
  # 复制文件到远程服务器
  ansible '*' -m copy -a "src=/etc/ansible/ansible.cfg dest=/tmp/ansible.cfg owner=root group=root mode=0644"
  # 在节点上运行hostname
  nsible all -m raw -a 'hostname|tee'
  # 将指定url上的文件下载到/tmp下
  ansible all -m get_url -a 'url=http://10.1.1.116/favicon.ico dest=/tmp'
  ynchronize模块:
  目的:将主控方/root/a目录推送到指定节点的/tmp目录下
  命令:ansible all -m synchronize -a 'src=/root/a dest=/tmp/ compress=yes'
  执行效果:
  delete=yes   使两边的内容一样(即以推送方为主)
  compress=yes  开启压缩,默认为开启
  --exclude=.git  忽略同步.git结尾的文件
DSC0000.jpg

  由于模块,默认都是推送push。因此,如果你在使用拉取pull功能的时候,可以参考如下来实现
  mode=pull   更改推送模式为拉取模式
  目的:将10.1.1.113节点的/tmp/a目录拉取到主控节点的/root目录下
  命令:ansible 10.1.1.113 -m synchronize -a 'mode=pull src=/tmp/a dest=/root/'
  执行效果:
DSC0001.jpg

  由于模块默认启用了archive参数,该参数默认开启了recursive, links, perms, times, owner,group和-D参数。如果你将该参数设置为no,那么你将停止很多参数,比如会导致如下目的递归失败,导致无法拉取
DSC0002.jpg

  其它相关的参数解释:
dest_port=22    # 指定目的主机的ssh端口,ansible配置文件中的 ansible_ssh_port 变量优先级高于该 dest_port 变量rsync_path      # 指定 rsync 命令来在远程服务器上运行。这个参考rsync命令的--rsync-path参数,--rsync-path=PATH     # 指定远程服务器上的rsync命令所在路径信息rsync_timeout   # 指定 rsync 操作的 IP 超时时间,和rsync命令的 --timeout 参数效果一样

运维网声明 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-430880-1-1.html 上篇帖子: ansible-playbook api 2.0 直接运行 下篇帖子: Ansible之roles介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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