我有一个 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