【问题标题】:Ansible: How to maintain --extra-vars into two sub-playbooks when disconnection occurs?Ansible:断开连接时如何将--extra-vars维护到两个子剧本中?
【发布时间】:2019-05-26 10:54:43
【问题描述】:

我正在开发的剧本应该在使用参数(--extra-vars)在命令行中指定的单个主机(hostA)上进行身份验证后运行 例如:[ansible-playbook main.yaml -e "variable_host=hostA"]

本主要剧本包括 part1 和 part2,预计 hostA 将由于 part1 和 part2 之间的重新启动而断开 ansible 会话。

尝试了两种解决方案均未成功:

第一个解决方案:(每个部分都有include_tasks:第一个part1在hostA上成功处理,但第二个part2失败。这是由于连接问题,因为part2需要user/pwd . vars_prompt 似乎只适用于 part1)

main.yaml

主机:“{{ variable_host | default('All-host')}}”

vars_prompt:

- name: ADMUSER
  prompt: Username
  private: no
- name: ADMPASS
  prompt: password
  private: yes

任务:

- name: ==> Part1
  include_tasks: TEST1.yaml      
- name: ==> Part2
  include_tasks: TEST2.yaml

第二种解决方案:(每个部分都带有import_playbook:第一个part1处理成功。第二次连接part2成功,但是part2运行在所有主机上。part2应该只运行在主机A。 主机变量不会被 --extra-vars 覆盖)

main.yaml

  • import_playbook:playbook1.yaml
  • import_playbook:playbook2.yaml

playbook1.yaml

主机:“{{ variable_host | default('All-host')}}”

vars_prompt:

- name: ADMUSER
  prompt: Username
  private: no
- name: ADMPASS
  prompt: password
  private: yes

任务:

- nameA1:xxxx
- nameB1:xxxx

playbook2.yaml

主机:“{{ variable_host | default('All-host')}}”

vars_prompt:

- name: ADMUSER
  prompt: Username
  private: no
- name: ADMPASS
  prompt: password
  private: yes

任务:

- nameA2:xxxx
- nameB2:xxxx

那么,即使发生断开连接,是否有一种解决方案可以为第 1 部分和第 2 部分维护 hostA 的 --extra-vars? 注意我不赞成修改配置文件“主机”以将剧本限制为单个主机的解决方案。 谢谢 理查德

【问题讨论】:

    标签: ansible


    【解决方案1】:

    终于明白了!!!

    它适用于第二种解决方案,但不是使用额外变量来限制主机,而是使用 --limit "hostA" 运行剧本

    2019 年快乐。

    【讨论】:

      猜你喜欢
      • 2016-08-05
      • 1970-01-01
      • 2018-09-21
      • 2017-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多