1.  
  2. 主页
  3.  / 
  4. Ansible 教程
  5.  / 
  6. Ansible 相关工具
  7.  / 
  8. ansible

ansible

ansible 命令是用于执行“远程操作”的超简单工具/框架/ API。该命令允许您针对一组主机定义并运行单个任务“剧本”。

命令格式

usage: ansible [-h] [--version] [-v] [-b] [--become-method BECOME_METHOD]
               [--become-user BECOME_USER] [-K] [-i INVENTORY] [--list-hosts]
               [-l SUBSET] [-P POLL_INTERVAL] [-B SECONDS] [-o] [-t TREE] [-k]
               [--private-key PRIVATE_KEY_FILE] [-u REMOTE_USER]
               [-c CONNECTION] [-T TIMEOUT]
               [--ssh-common-args SSH_COMMON_ARGS]
               [--sftp-extra-args SFTP_EXTRA_ARGS]
               [--scp-extra-args SCP_EXTRA_ARGS]
               [--ssh-extra-args SSH_EXTRA_ARGS] [-C] [--syntax-check] [-D]
               [-e EXTRA_VARS] [--vault-id VAULT_IDS]
               [--ask-vault-pass | --vault-password-file VAULT_PASSWORD_FILES]
               [-f FORKS] [-M MODULE_PATH] [--playbook-dir BASEDIR]
               [-a MODULE_ARGS] [-m MODULE_NAME]
               pattern

参数详解

可选参数:

  --ask-vault-pass      # 加密playbook文件时提示输入密码
  --list-hosts          # 列出执行匹配到的主机,但并不会执行
  --playbook-dir BASEDIR    # 由于此工具不使用剧本,因此将其用作 替换剧本目录
  --syntax-check        # 检查Playbook中的语法书写
  --vault-id VAULT_IDS  # vault id
  --vault-password-file # vault 密码文件
  --version             # 显示程序的版本号,配置文件位置,配置的模块搜索路径,模块位置,可执行文件位置
  -B SECONDS, --background SECONDS     # 后台运行超时时间,异步运行,X秒之后失败
  -C, --check           # 模拟执行,不会真正在机器上执行(查看执行会产生什么变化)
  -D, --diff            # 当更新的文件数及内容较少时,该选项可显示这些文件不同的地方,该选项结合-C用会有较好的效果
  -M MODULE_PATH, --module-path MODULE_PATH    # 要执行的模块的路径
  -P POLL_INTERVAL, --poll POLL_INTERVAL    # 设置轮询间隔,单位秒,需要结合 -B 参数使用,默认为 15 秒。
  -a MODULE_ARGS, --args MODULE_ARGS    # 指定执行模块使用的参数
  -e EXTRA_VARS, --extra-vars EXTRA_VARS    # 执行命令时添加额外参数变量
  -f FORKS, --forks FORKS    # 并行任务数。FORKS被指定为一个整数,默认是5
  -h, --help            # 命令帮助文档
  -i INVENTORY, --inventory INVENTORY, --inventory-file INVENTORY    # 指定要读取的Inventory文件
  -l SUBSET, --limit SUBSET    # 限定执行的主机范围
  -m MODULE_NAME, --module-name MODULE_NAME    # 指定执行使用的模块,默认使用 command 模块
  -o, --one-line        # 压缩输出,摘要输出,尝试一切都在一行上输出
  -t TREE, --tree TREE  # 将日志内容保存在该输出目录,结果保存在每台主机上的一个文件中
  -v, --verbose         # 执行详细输出 (-vvv for more, -vvvv to enable connection debugging)

权限提升参数:

  --become-method BECOME_METHOD    # 要使用的权限提升方法(默认=sudo),使用 `ansible-doc -t become -l` 列出有效的选择
  --become-user BECOME_USER    # 以此用户身份运行操作(默认=root)
  -K, --ask-become-pass    # 要求提权的密码
  -b, --become          # 设置为yes激活权限提升。

连接参数:

  --private-key PRIVATE_KEY_FILE, --key-file PRIVATE_KEY_FILE    # 使用此文件的连接进行验证
  --scp-extra-args SCP_EXTRA_ARGS    # 指定仅传递给 scp 的额外参数(例如 -l)
  --sftp-extra-args SFTP_EXTRA_ARGS    # 指定仅传递给 sftp 的额外参数(例如 -f、-l)
  --ssh-common-args SSH_COMMON_ARGS    # 指定要传递给 sftp/scp/ssh 的通用参数
  --ssh-extra-args SSH_EXTRA_ARGS    # 指定仅传递给 ssh 的额外参数(例如 -R)
  -T TIMEOUT, --timeout TIMEOUT    # 连接超时时间,单位:秒,默认 10 秒
  -c CONNECTION, --connection CONNECTION    # 要使用的连接类型,默认是 smart
  -k, --ask-pass        # 询问连接密码,也就说,使用密码访问的话,需要加此参数
  -u REMOTE_USER, --user REMOTE_USER    # 以此用户身份连接,默认为 None

演示

添加需要执行任务的主机清单

[root@lanyulei-1 ~]# vim /etc/ansible/hosts
[lanyulei]
172.16.244.154
172.16.244.130

对主机清单内的所有主机,都执行 ping 操作

[root@lanyulei-1 ~]# ansible all -m ping
172.16.244.154 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}
172.16.244.130 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}
这篇文章对您有用吗?

我们要如何帮助您?

发表评论

您的电子邮箱地址不会被公开。