【发布时间】:2017-09-21 08:29:28
【问题描述】:
我有一个剧本,我运行它来将访客 VM 部署到我的目标节点上。 来宾虚拟机启动后,它不能用于整个网络,而只能用于主机。 此外,在启动来宾 VM 后,我需要在该来宾 on 上运行一些命令来配置它并使其可供所有网络成员使用。
---
- block:
- name: Verify the deploy VM script
stat: path="{{ deploy_script }}"
register: deploy_exists
failed_when: deploy_exists.stat.exists == False
no_log: True
rescue:
- name: Copy the deploy script from Ansible
copy:
src: "scripts/new-install.pl"
dest: "/home/orch"
owner: "{{ my_user }}"
group: "{{ my_user }}"
mode: 0750
backup: yes
register: copy_script
- name: Deploy VM
shell: run my VM deploy script
<other tasks>
- name: Run something on the guest VM
shell: my_other_script
args:
cdir: /var/scripts/
- name: Other task on guest VM
shell: uname -r
<and so on>
如何通过主机在来宾 VM 上运行这些后续步骤? 我唯一的解决方法是使用 VM 详细信息填充新的清单文件,并将使用主机添加为堡垒主机。
[myvm]
myvm-01 ansible_connection=ssh ansible_ssh_user=my_user ansible_ssh_common_args='-oStrictHostKeyChecking=no -o ProxyCommand="ssh -A -W %h:%p someuser@host_machine"'
但是,我希望所有事情都发生在一个剧本上,而不是拆分它们。
【问题讨论】:
-
@techraf 他安装了一台新机器并想对新机器做一些事情,这使得有必要将新机器添加到库存中。其他一切都必须在
.ssh/config中完成,这不是 Ansible 问题。 -
@ceving 好吧,似乎有道理:-) 但是答案在另一个问题中暗示,而不是答案。
-
@ceving 我的问题是我无法继续 VM 上的其余任务,即使我可以使用 add_host。
-
请参阅here 如何进行 SSH 多跳。
标签: ansible virtual-machine inventory