向yml文件传递参数,ansible-playbook命令

本文介绍如何在Ansible中通过命令行传递变量值到playbook。包括直接在命令行中使用--extra-vars选项传递参数、使用JSON格式及从文件读取参数的方法。
部署运行你感兴趣的模型镜像

摘录:https://ansible-book.gitbooks.io/ansible-first-book/content/yong_ming_ling_xing_chuan_di_can_shu.html

用命令行传递参数

定义命令行变量

在release.yml文件里,hosts和user都定义为变量,需要从命令行传递变量值。


  • hosts: ‘{{ hosts }}’
    remote_user: ‘{{ user }}’

    tasks:


    • 使用命令行变量

在命令行里面传值得的方法:

 ansible-playbook e33_var_in_command.yml --extra-vars "hosts=web user=root" 

还可以用json格式传递参数:

ansible-playbook e33_var_in_command.yml --extra-vars "{'hosts':'vm-rhel7-1', 'user':'root'}" 

还可以将参数放在文件里面:


ansible-playbook e33_var_in_command.yml --extra-vars "@vars.json"

您可能感兴趣的与本文相关的镜像

GPT-SoVITS

GPT-SoVITS

AI应用

GPT-SoVITS 是一个开源的文本到语音(TTS)和语音转换模型,它结合了 GPT 的生成能力和 SoVITS 的语音转换技术。该项目以其强大的声音克隆能力而闻名,仅需少量语音样本(如5秒)即可实现高质量的即时语音合成,也可通过更长的音频(如1分钟)进行微调以获得更逼真的效果

Ansible 是一个强大的自动化工具,可以用于配置管理、应用部署、任务自动化等场景。Ansible 的 `ansible-playbook` 命令是其核心功能之一,用于执行定义在 YAML 格式文件中的 Playbook。以下是对 `ansible-playbook` 命令的使用方法及示例的详细说明。 ### 执行 Playbook 的基本命令 Playbook 文件通常以 `.yaml` 或 `.yml` 结尾,其中定义了多个任务(tasks)以及目标主机(hosts)等信息。执行 Playbook 的基本命令如下: ```bash ansible-playbook playbook_file.yaml ``` 该命令会按照 Playbook 文件中定义的任务顺序,依次在目标主机上执行操作 [^3]。 ### 检查 Playbook 文件的语法 在执行 Playbook 之前,建议先检查文件的语法是否正确,避免因格式错误导致任务失败: ```bash ansible-playbook playbook_file.yaml --syntax-check ``` 该命令会验证 YAML 文件的格式是否符合规范,确保没有语法错误 [^4]。 ### 列出 Playbook 中的任务 如果需要查看 Playbook 中定义的所有任务,可以使用以下命令: ```bash ansible-playbook playbook_file.yaml --list-tasks ``` 该命令会列出所有任务的名称,帮助用户快速了解 Playbook 的执行内容 。 ### 列出生效的主机 在执行 Playbook 之前,可以查看哪些主机将受到影响: ```bash ansible-playbook playbook_file.yaml --list-hosts ``` 该命令会列出所有将执行任务的主机或主机组 [^4]。 ### 从指定任务开始执行 在调试或重新执行 Playbook 时,可能需要从某个特定任务开始执行,而不是从头开始。可以使用 `--start-at-task` 参数实现: ```bash ansible-playbook playbook_file.yaml --start-at-task='Task Name' ``` 该命令会跳过之前的所有任务,直接从指定名称的任务开始执行 [^3]。 ### 传递参数和用户认证 在执行 Playbook 时,可能需要提供额外的参数或进行用户认证: - `-k` 或 `--ask-pass`:交互式输入 SSH 密码 - `-K` 或 `--ask-become-pass`:交互式输入 `sudo` 密码 - `-u`:指定远程执行的用户 例如,若目标主机需要密码认证,可以使用以下命令: ```bash ansible-playbook playbook_file.yaml -u username -k ``` 这将提示用户输入 SSH 密码 [^4]。 ### 示例:配置 `/etc/hosts` 文件 以下是一个简单的 Playbook 示例,用于将模板文件 `hosts.j2` 渲染并复制到目标主机的 `/etc/hosts` 文件中: ```yaml - name: Configure hosts file hosts: all_servers remote_user: root tasks: - name: Copy hosts.j2 template to target servers template: src: hosts.j2 dest: /etc/hosts ``` 执行该 Playbook命令如下: ```bash ansible-playbook hosts.yaml ``` 该 Playbook 会在 `all_servers` 组中的所有主机上执行任务,将本地的 `hosts.j2` 模板文件渲染后复制到 `/etc/hosts` 路径下 [^5]。 ### 调试 Playbook 在开发或维护 Playbook 时,调试功能可以帮助快速定位问题。Ansible Playbook Debugger 是一个开源工具,允许用户在 Playbook 执行过程中进行交互式调试。通过该工具,可以在任务执行时查看变量值、执行中间步骤等 [^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值