如何使用Ansible循环寄存器值?
我正在尝试如何使用Ansible循环寄存器值?,ansible,ansible-2.x,ansible-template,Ansible,Ansible 2.x,Ansible Template,我正在尝试grep多个目标主机上的进程的进程ID,并试图杀死该进程 到目前为止,我得到的是这个 - name: Grep any running process shell: ps aux | grep "[m]ongo*" | awk '{ print $2 }' register: mongod_running_processes with_items: - "{{ groups['primary-server-gb4'] }}" - "{{ groups['replic
grep
多个目标主机上的进程的进程ID,并试图杀死该进程
到目前为止,我得到的是这个
- name: Grep any running process
shell: ps aux | grep "[m]ongo*" | awk '{ print $2 }'
register: mongod_running_processes
with_items:
- "{{ groups['primary-server-gb4'] }}"
- "{{ groups['replication-servers-gb4'] }}"
现在我想终止目标主机中的进程
- name: Delete process
shell: kill -15 {{ item }}
with_items: "{{mongod_running_processes.results.stdout_lines}}"
这似乎不起作用
问:如何获取特定于目标的进程ID数组并杀死这些进程 也许你可以用一行程序终止进程,因为你已经在使用“shell” 模块: 替换:
shell: ps aux | grep "[m]ongo*" | awk '{ print $2 }'
用于:
忽略下面的任务。也许您可以使用一行程序终止进程,因为您已经在使用“shell” 模块: 替换:
shell: ps aux | grep "[m]ongo*" | awk '{ print $2 }'
用于:
忽略下面的任务。我完全不明白你想做什么。第一个任务中的循环没有任何意义。您没有在任何地方使用
项。您是否试图列出组中每台服务器上的这些进程?如果是,则缺少一个委托给
子句。在这种情况下,你的第二个任务也没有任何意义。由于您在一台可能未运行任务的服务器上多次尝试终止所有任务(此外,由于results
是一个列表,因此您循环的变量不存在)。我完全不明白您要做什么。第一个任务中的循环没有任何意义。您没有在任何地方使用项。您是否试图列出组中每台服务器上的这些进程?如果是,则缺少一个委托给
子句。在这种情况下,你的第二个任务也没有任何意义。因为您在一台可能没有运行任务的服务器上多次尝试终止所有任务(此外,由于results
是一个列表,所以您循环的var不存在)。