ansible 命令

目录

1. ansible
2. ansible的 Host-pattern
3 ansible 命令执行过程
4. ansible 使用示例


1. ansible

  • ansible 通过 ssh 实现配置管理、应用部署、任务执行等功能,建议配置 ansible 端基于密钥认证的方式联系各被管理节点
ansible <host-pattern> [-m module_name] [-a args]
    --version 显示版本
    -m module 指定模块,默认为 command
    -v 详细过程 -vv -vvv 更详细
    --list-hosts    显示主机列表,可简写 
    -k,ask-pass    提示输入ssh连接密码,默认 Key 验证
    -K,--ask-become-pass 提示输入sudu时的口令
    -C,--check    检查,并不执行
    -T,--timeout=TIMEOUT 执行命令的超时时间,默认10s
    -u,--user=REMOTE_USER 执行远程执行的用户
    -b,--become    代替旧版的 sudo 切换

2. ansible的 Host-pattern

  • 逻辑或
ansible "webservers:dbservers" -m ping
  • 逻辑与
ansible 'webservers:&dbservers' -m ping
  • 逻辑非
ansible 'webservers:!dbservers' -m ping

注意:此为单引号

  • 综合逻辑
ansible 'webservers:dbservers&appservers:!ftpservers' -m ping
  • 正则表达式
ansible 'webservers:&dbservers' -m ping
ansible '(web|db).*\xixi\.com' -m ping

3 ansible 命令执行过程

0x01 ansible 命令执行过程

  • 加在自己的配置文件默认 /etc/ansible/ansible.cfg
  • 加在自己对应的模块文件,如 command
  • 通过 ansible 将模块或命令生成对应的临时 py 文件,并传输至远程服务器的对应用户 $HOME/.ansible/tmp/ansible-tmp-数字/XXX.py 文件
  • 赋予文件 u+x 权限
  • 执行并返回结果
  • 删除临时 py 文件, sleep 0 退出

0x02 执行状态

  • 绿色:执行成功并且不需要做改变的操作
  • 黄色:执行成功并且对目标主机做变更
  • 红色:执行失败

4. ansible 使用示例

  • test 用户执行 ping 存活检测
ansible all -m ping -u test -k
  • test 用户 sudoroot 执行 ping 存活检测
ansible all -m ping -u test -k -b
  • test 用户 sudovagrant 执行 ping 存活检测
ansible all -m ping -u test -k -b --become-user vagrant
  • test 用户 sudoroot 执行 ls
ansible all -m command -u test -k --become-user=root -a 'ls /root' -b -k -K
posted @ 2018-12-05 22:18  McSiberiaWolf  阅读(130)  评论(0)    收藏  举报