CH06 Asked: 2024-08-12 18:34:34 +0800 CST2024-08-12 18:34:34 +0800 CST 2024-08-12 18:34:34 +0800 CST 运行剧本时将主机插入到 group_vars 中 772 如何从已运行的剧本中host1设置 group_vars ?database 谢谢 variables 1 个回答 Voted Best Answer Vladimir Botka 2024-08-12T21:07:18+08:002024-08-12T21:07:18+08:00 简短的回答是:ansible.builtin.add_host 但值得庆幸的是,这一变化不会影响当前的游戏。例如,考虑到库存 shell> cat hosts [database] host2 host3 和group_vars shell> cat group_vars/database/main.yml test_var: database 以下游戏 - name: Play 1 hosts: database tasks: - debug: var: groups run_once: true - debug: var: test_var 符合预期(节选) TASK [debug] *** ok: [host2] => groups: all: - host2 - host3 database: - host2 - host3 ungrouped: [] TASK [debug] *** ok: [host2] => test_var: database ok: [host3] => test_var: database 如果将主机host1添加到组数据库 - add_host: name: host1 groups: database 添加的主持人将立即在群内被举报 - debug: var: groups run_once: true 给出(节选) groups: all: - host1 - host2 - host3 database: - host2 - host3 - host1 ungrouped: [] 但新增的主持人不会参与该剧的演出 - debug: var: test_var 给出与之前相同的结果(略) ok: [host2] => test_var: database ok: [host3] => test_var: database 刷新库存没有帮助 - meta: refresh_inventory - debug: var: test_var 仍然给出相同的结果 ok: [host2] => test_var: database ok: [host3] => test_var: database 您必须开始新游戏才能将新主持人纳入小组 - name: Play 2 hosts: database tasks: - debug: var: test_var 给出 ok: [host2] => test_var: database ok: [host3] => test_var: database ok: [host1] => test_var: database 将主机添加到组不是永久性的。只有当前的剧本会受到影响。 完整测试剧本的示例。 - name: Play 1 hosts: database tasks: - debug: var: groups run_once: true - debug: var: test_var - add_host: name: host1 groups: database - debug: var: groups run_once: true - debug: var: test_var - meta: refresh_inventory - debug: var: test_var - name: Play 2 hosts: database tasks: - debug: var: test_var
简短的回答是:ansible.builtin.add_host
但值得庆幸的是,这一变化不会影响当前的游戏。例如,考虑到库存
和group_vars
以下游戏
符合预期(节选)
如果将主机host1添加到组数据库
添加的主持人将立即在群内被举报
给出(节选)
但新增的主持人不会参与该剧的演出
给出与之前相同的结果(略)
刷新库存没有帮助
仍然给出相同的结果
您必须开始新游戏才能将新主持人纳入小组
给出
将主机添加到组不是永久性的。只有当前的剧本会受到影响。
完整测试剧本的示例。