如何在ansible中执行模块之前添加一个变量主机?
How to add a host that is a variable before executing a module in ansible?
这是我要执行的任务
- hosts: variable-vm
become: yes
tasks:
- name: Transfer file from local to remote
copy:
src: /tmp/file
dest: /home/ansible/
现在,在用户执行我的剧本之前,我希望他输入
--extra-vars "server=variable-vm"
在其他任务中,这是在 yml 文件的开头定义的,如下所示:
- hosts: webservers
vars:
my_server: "{{ server }}"
become: yes
tasks:
当我需要时,我会将任务委托给那个变量 vm
delegate_to: '{{ my_server }}'
请记住,我已经在 "webservers"
下的清单中定义了 variable-vm
基本上我的机器通过 ssh 密钥连接到几十台服务器,这些服务器在 /etc/hosts 下定义。我只希望用户输入在 /etc/hosts 中定义的服务器名称,并在复制任务之前将该变量用作 "hosts:" 的输入。
据我所知,没有其他方法可以指定我要将文件复制到的远程机器。
@CzipO2,可以使用extra_vars发送主机到ansible-playbook命令如下图,
ansible-playbook -i hosts main.yml -e new_host=192.168.10.10
并且可以将任务委托给这个宿主。
据我所知,不可能将主机放在一个变量中然后 运行 其上的任务,您始终可以将任务委托给使用 extra_vars 指定的主机。
这是我要执行的任务
- hosts: variable-vm
become: yes
tasks:
- name: Transfer file from local to remote
copy:
src: /tmp/file
dest: /home/ansible/
现在,在用户执行我的剧本之前,我希望他输入
--extra-vars "server=variable-vm"
在其他任务中,这是在 yml 文件的开头定义的,如下所示:
- hosts: webservers
vars:
my_server: "{{ server }}"
become: yes
tasks:
当我需要时,我会将任务委托给那个变量 vm
delegate_to: '{{ my_server }}'
请记住,我已经在 "webservers"
下的清单中定义了 variable-vm基本上我的机器通过 ssh 密钥连接到几十台服务器,这些服务器在 /etc/hosts 下定义。我只希望用户输入在 /etc/hosts 中定义的服务器名称,并在复制任务之前将该变量用作 "hosts:" 的输入。
据我所知,没有其他方法可以指定我要将文件复制到的远程机器。
@CzipO2,可以使用extra_vars发送主机到ansible-playbook命令如下图,
ansible-playbook -i hosts main.yml -e new_host=192.168.10.10
并且可以将任务委托给这个宿主。
据我所知,不可能将主机放在一个变量中然后 运行 其上的任务,您始终可以将任务委托给使用 extra_vars 指定的主机。