Ansible中是否有在远程节点上运行远程命令的临时命令?
我正试图在主节点上执行此操作Ansible中是否有在远程节点上运行远程命令的临时命令?,ansible,Ansible,我正试图在主节点上执行此操作 ansible all -m shell -a "/bin/ping -c3 `hostname`" 而不是ping远程主机名,而是ping主节点 ansible all -m shell -a "/bin/ping -c3 `hostname`" e、 例如,主节点主机名=主节点 远程节点主机名=从节点 上面的命令执行此操作 /bin/ping -c3 Master (instead of /bin/ping -c3 Slave) 请就如何在Ansible中
ansible all -m shell -a "/bin/ping -c3 `hostname`"
而不是ping远程主机名,而是ping主节点
ansible all -m shell -a "/bin/ping -c3 `hostname`"
e、 例如,主节点主机名=主节点
远程节点主机名=从节点
上面的命令执行此操作
/bin/ping -c3 Master (instead of /bin/ping -c3 Slave)
请就如何在Ansible中实现这一点提出建议。如果您像这样对
主机名
进行反引用:`hostname`,则该命令将在本地主机上执行。如果您确实想在远程主机上执行它,请使用inventory\u hostname
尝试:
如果要在目标主机中执行hostname
,请转义backquote
,以便本地计算机上的shell不会对其进行解释
ansible all -m shell -a "/bin/ping -c3 \`hostname\`"
如果像这样反引用
hostname
:`hostname`,那么它是一个将在本地主机上执行的命令。如果您确实想在远程主机上执行它,请使用inventory\u hostname
尝试:
如果要在目标主机中执行hostname
,请转义backquote
,以便本地计算机上的shell不会对其进行解释
ansible all -m shell -a "/bin/ping -c3 \`hostname\`"
添加到回答中,虽然inventory\u hostname
是从您的清单文件中获取的,但您可能还需要查看
-系统报告的主机名{{ansible\u nodename}
-显示第一个句点(.)之前字符串的非限定主机名{{ansible\u hostname}}
hostname
命令的输出而不是一个简单的事实,您应该在命令中使用单引号,如
ansible all -m shell -a '/bin/ping -c3 `hostname`'
单引号将保留传递给远程主机的确切语法,而当您使用双引号时,表达式将在传递给托管主机之前在主节点上求值
请参阅以供将来参考
另外,请使用$(command)
语法,而不是`command`
,请参见添加到回答中,虽然清单\u主机名
是从清单文件中获取的,但您可能还需要查看
-系统报告的主机名{{ansible\u nodename}
-显示第一个句点(.)之前字符串的非限定主机名{{ansible\u hostname}}
hostname
命令的输出而不是一个简单的事实,您应该在命令中使用单引号,如
ansible all -m shell -a '/bin/ping -c3 `hostname`'
单引号将保留传递给远程主机的确切语法,而当您使用双引号时,表达式将在传递给托管主机之前在主节点上求值
请参阅以供将来参考
另外,请使用
$(command)
语法,而不是`command`
,请参见ansible all-m shell-a'/bin/ping-c3主机名
”将命令保持原样。ping:unknown hosthostname
有单引号和双引号的详细信息您确定吗?你的目标系统是什么?在centos6和opensuse上分别命令ansible-i10.0.8.82127.0.1-mshell-a'/bin/ping-c3$(主机名)'在opensuse和centos 6 ansible上使用backticks test comand生成所需结果-i 10.0.8.82127.0.1-m shell-a'echohostname
:uname-r
'所有127.0.1 | SUCCESS | rc=0>>linux-4xmi:4.4.57-18.3-default 10.0.8.82 | SUCCESS | rc=0>>主机:2.6.32-642.el6.x86 u>我正在centos上运行该命令,两个都没有运行该命令在这里,backticks和$1都不起作用。。“$(hostname)”-采用主主机名而不是远程主机名,并且ansible all-m shell-a'/bin/ping-c3hostname
'将保留命令的原样。ping:unknown hosthostname
有单引号和双引号的详细信息您确定吗?你的目标系统是什么?在centos6和opensuse上分别命令ansible-i10.0.8.82127.0.1-mshell-a'/bin/ping-c3$(主机名)'在opensuse和centos 6 ansible上使用backticks test comand生成所需结果-i 10.0.8.82127.0.1-m shell-a'echohostname
:uname-r
'所有127.0.1 | SUCCESS | rc=0>>linux-4xmi:4.4.57-18.3-default 10.0.8.82 | SUCCESS | rc=0>>主机:2.6.32-642.el6.x86 u>我正在centos上运行该命令,两个都没有运行该命令在这里,backticks和$1都不起作用。。“$(主机名)”-采用主主机名而非远程主机名,因此无法使用backquote`some_commad`在远程节点上执行命令是否可以通过Playbook?仅供参考ansible all-m shell-a”/bin/ping-c3\`hostname`”无法使用backquote`some_commad`在远程节点上执行命令。是否可以通过Playbook?仅供参考ansible all-m shell-a“/bin/ping-c3\`hostname\`无法运行