1. 主页
  2. Ansible 教程
  3. Ansible 相关工具
  4. ansible-playbook

ansible-playbook

Ansible-playbook是日常应用中使用频率最高的命令,类似于Linux中的sh或source命令,用来执行系列任务。

命令格式

usage: ansible-playbook [-h] [--version] [-v] [-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] [--force-handlers]
                        [--flush-cache] [-b] [--become-method BECOME_METHOD]
                        [--become-user BECOME_USER] [-K] [-t TAGS]
                        [--skip-tags SKIP_TAGS] [-C] [--syntax-check] [-D]
                        [-i INVENTORY] [--list-hosts] [-l SUBSET]
                        [-e EXTRA_VARS] [--vault-id VAULT_IDS]
                        [--ask-vault-pass | --vault-password-file VAULT_PASSWORD_FILES]
                        [-f FORKS] [-M MODULE_PATH] [--list-tasks]
                        [--list-tags] [--step] [--start-at-task START_AT_TASK]
                        playbook [playbook ...]

参数详解

可选参数:
  --ask-vault-pass      # 加密playbook文件时提示输入密码
  --flush-cache         # 清除 inventory 中主机的 fact 缓存
  --force-handlers      # 强制运行 handlers 的任务,即使在任务失败的情况下
  --list-hosts          # 列出匹配的主机列表
  --list-tags           # 列出所有可用的 tags
  --list-tasks          # 列出所有可以执行的 tasks
  --skip-tags SKIP_TAGS # 跳过指定的 tags 任务
  --start-at-task START_AT_TASK    # 从第几条 tasks 开始执行
  --step                # 逐条执行tasks,并且需要人工确认是否执行
  --syntax-check        # 只检查 playbook 中的语法,不实际执行内容
  --vault-id VAULT_IDS  # vault id
  --vault-password-file VAULT_PASSWORD_FILES    # vault 密码文件
  --version             # 显示程序的版本号,配置文件位置,配置的模块搜索路径,模块位置,可执行文件位置
  -C, --check           # 模拟执行,不会真正在机器上执行(查看执行会产生什么变化)
  -D, --diff            # 当更新的文件数及内容较少时,该选项可显示这些文件不同的地方,该选项结合-C用会有较好的效果
  -M MODULE_PATH, --module-path MODULE_PATH    # 要执行的模块的路径
  -e EXTRA_VARS, --extra-vars EXTRA_VARS    # 在 playbook 中引入外部变量
  -f FORKS, --forks FORKS    # # 并行任务数。FORKS被指定为一个整数,默认是5
  -h, --help            # 帮助文档
  -i INVENTORY, --inventory INVENTORY, --inventory-file INVENTORY    # 指定要读取的 inventory 文件
  -l SUBSET, --limit SUBSET    # 限定执行的主机范围
  -t TAGS, --tags TAGS  # 只执行指定的标记有 tags 任务
  -v, --verbose         # 执行详细输出 (-vvv for more, -vvvv to enable connection debugging)

连接参数:
 
  --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

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

演示

编写 playbook 文件, ping.yml

- hosts: all
  gather_facts: false
  tasks:
    - ping:

执行结果

[root@lanyulei-1 ~]# ansible-playbook ping.yml 

PLAY [all] *************************************************************************************************************************************************************************************************************************************

TASK [ping] ************************************************************************************************************************************************************************************************************************************
ok: [172.16.244.154]
ok: [172.16.244.130]

PLAY RECAP *************************************************************************************************************************************************************************************************************************************
172.16.244.130             : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
172.16.244.154             : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

我们要如何帮助您?

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注