我试图使用以下命令在 openstack 上使用 Chef 创建并引导一个实例:
sudo knife openstack server create -N jenkins_openstack -f 0eb9c50a-07b9-4fc1-aa33-f6bd66c6bc7b --network-ids 7d5c5d7e-e447-4b22-a5f8-5dbfb53c2128 --openstack-ssh-key-id mmm --openstack-floating-ip -r 'role[jenkins]' --environment production -i /root/.ssh/mmm.pem --ssh-user centos --bootstrap-install-command ' sudo sh -c 'echo 192.168.103.194 chef.server.com >> /etc/hosts''
但这不起作用并给出此错误:
-bash: /etc/hosts: 权限被拒绝
有任何想法吗?
答案1
单引号不嵌套:
--bootstrap-install-command ' sudo sh -c 'echo 192.168.103.194 chef.server.com >> /etc/hosts''
will的参数--bootstrap-install-command
是sudo sh -c 'echo
,那么杂散标记192.168.103.194 chef.server.com >>/etc/hosts
将保留,导致非 sudo 尝试追加到 file /etc/hosts
。这解释了您收到的错误消息。
试试这个:
--bootstrap-install-command 'sudo sh -c "echo 192.168.103.194 chef.server.com >>/etc/hosts"'