ansible - Ansible:断开连接时如何将 --extra-vars 维护到两个子剧本中?
问题描述
我正在开发的剧本应该在使用参数(--extra-vars)在命令行中指定的单个主机(hostA)上进行身份验证后运行,例如:[ansible-playbook main.yaml -e "variable_host=hostA"]
该主要剧本包括 part1 和 part2,预计 hostA 将由于 part1 和 part2 之间的重新启动而断开 ansible 会话。
尝试了两种解决方案均未成功:
第一个解决方案:(每个部分都有include_tasks:第一个part1在hostA上成功处理,但第二个part2失败。这是由于连接问题,因为part2需要用户/密码。vars_prompt似乎只适用于仅限第 1 部分)
主要.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应该只在hostA上运行。主机变量不会被覆盖- -额外变量)
主要.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?注意我不赞成修改配置文件“主机”以将剧本限制为单个主机的解决方案。谢谢理查德
解决方案
终于明白了!!!
它适用于第二种解决方案,但不是使用额外变量来限制主机,而是使用 --limit "hostA" 运行剧本
2019年快乐。
推荐阅读
- node.js - 从nodejs中的回调函数返回值
- python - 用 sympy 求解线性方程组需要很长时间
- android - 华为 HMS - 使用自定义 uri 架构从浏览器打开应用程序
- html - 背景循环视频在手机上不起作用
- .net - 如何在 gRPC 上实现服务器“回调”
- sql - 如何在databricks sql中将字符串转换为日期
- sql - SQL 未从数据集中返回所需的 MAX 版本
- reactjs - Material UI 材质表 TablePagination 问题。(反应)
- java - 修复找不到符号 mInterstitialAd = new InterstitialAd(this); 符号:变量 mInterstitialAd 位置:广告类
- php - Laravel 多模型关系