knife ssh 节点名称通配符匹配

knife ssh 节点名称通配符匹配

我有一个 chef 环境“dev”,我们正在将持续集成构建环境从 jenkins 切换到 bamboo。因此,我们有一堆节点名称“jenkins_slave_??”和“bamboo_slave_??

我想在开发环境中的所有 jenkins_slave 系统上执行 yum update -y。为了测试 Knife 是否只命中我想要的服务器,以下命令将在开发环境中的所有主机上执行命令。

knife ssh '*:dev' 'hostname; cat /etc/redhat-release '  -a cloud.public_ipv4 -x ec2-user -i ~/.ssh/dev.pem

以下将在特定主机上执行我的命令。

knife ssh '*:jenkins_slave_01' 'hostname; cat /etc/redhat-release '  -a cloud.public_ipv4 -x ec2-user -i ~/.ssh/dev.pem

我无法得到

knife ssh '*:jenkins_slave_*' 'hostname; cat /etc/redhat-release '  -a cloud.public_ipv4 -x ec2-user -i ~/.ssh/dev.pem

或者

knife ssh 'jenkins_slave_*:*' 'hostname; cat /etc/redhat-release '  -a cloud.public_ipv4 -x ec2-user -i ~/.ssh/dev.pem

工作。如何让 Knife 向所有具有类似节点名称的主机发出 ssh 命令?

答案1

手脸植物对不起看到我的错误划线不是下划线

ssh '*:jenkins-slave*' 'hostname; cat /etc/redhat-release '  -a cloud.public_ipv4 -x ec2-user -i ~/.ssh/dev.pem

相关内容