Ssh [“共享连接已关闭”。”;stdout";:&引用;sudo:使用Ansible playbook时需要密码\r\n
我正试图在Ubuntu 16.04操作系统上使用kubespray工具运行一个Ansible playbook来部署Kubernetes集群。我有一台基础机器,安装了Ansible和克隆的kubespray Git存储库。集群中包含一个主节点和两个工作节点 我的主机(更新)文件,如下面的屏幕截图,Ssh [“共享连接已关闭”。”;stdout";:&引用;sudo:使用Ansible playbook时需要密码\r\n,ssh,kubernetes,ansible,kubespray,Ssh,Kubernetes,Ansible,Kubespray,我正试图在Ubuntu 16.04操作系统上使用kubespray工具运行一个Ansible playbook来部署Kubernetes集群。我有一台基础机器,安装了Ansible和克隆的kubespray Git存储库。集群中包含一个主节点和两个工作节点 我的主机(更新)文件,如下面的屏幕截图, [all] MILDEVKUB020 ansible_ssh_host=MILDEVKUB020 ip=192.168.16.173 ansible_user=uName ansible_ssh_p
[all]
MILDEVKUB020 ansible_ssh_host=MILDEVKUB020 ip=192.168.16.173 ansible_user=uName ansible_ssh_pass=pwd
MILDEVKUB030 ansible_ssh_host=MILDEVKUB030 ip=192.168.16.176 ansible_user=uName ansible_ssh_pass=pwd
MILDEVKUB040 ansible_ssh_host=MILDEVKUB040 ip=192.168.16.177 ansible_user=uName ansible_ssh_pass=pwd
[kube-master]
MILDEVKUB020
[etcd]
MILDEVKUB020
[kube-node]
MILDEVKUB020
MILDEVKUB030
MILDEVKUB040
[k8s-cluster:children]
kube-master
kube-node
127.0.0.1 MILDEVDCR01.Milletech.us MILDEVDCR01
192.168.16.173 MILDEVKUB020.Milletech.us MILDEVKUB020
192.168.16.176 MILDEVKUB030.Milletech.us MILDEVKUB030
192.168.16.177 MILDEVKUB040.Milletech.us MILDEVKUB040
hosts.ini文件的位置为/inventory/sample。我正在尝试下面的命令
sudo ansible-playbook -i inventory/sample/hosts.ini cluster.yml --user=uName --extra-vars "ansible_sudo_pass=pwd"
我正在使用下面链接中的剧本“cluster.yml”
和包含条目的my/etc/hosts文件,
[all]
MILDEVKUB020 ansible_ssh_host=MILDEVKUB020 ip=192.168.16.173 ansible_user=uName ansible_ssh_pass=pwd
MILDEVKUB030 ansible_ssh_host=MILDEVKUB030 ip=192.168.16.176 ansible_user=uName ansible_ssh_pass=pwd
MILDEVKUB040 ansible_ssh_host=MILDEVKUB040 ip=192.168.16.177 ansible_user=uName ansible_ssh_pass=pwd
[kube-master]
MILDEVKUB020
[etcd]
MILDEVKUB020
[kube-node]
MILDEVKUB020
MILDEVKUB030
MILDEVKUB040
[k8s-cluster:children]
kube-master
kube-node
127.0.0.1 MILDEVDCR01.Milletech.us MILDEVDCR01
192.168.16.173 MILDEVKUB020.Milletech.us MILDEVKUB020
192.168.16.176 MILDEVKUB030.Milletech.us MILDEVKUB030
192.168.16.177 MILDEVKUB040.Milletech.us MILDEVKUB040
更新错误
TASK [adduser : User | Create User Group]
Thursday 04 April 2019 11:34:55 -0400 (0:00:00.508) 0:00:33.383 ********
fatal: [MILDEVKUB040]: FAILED! => {"changed": false, "msg": "groupadd: Permission denied.\ngroupadd: cannot lock /etc/group; try again later.\n", "name": "kube-cert"}
fatal: [MILDEVKUB020]: FAILED! => {"changed": false, "msg": "groupadd: Permission denied.\ngroupadd: cannot lock /etc/group; try again later.\n", "name": "kube-cert"}
fatal: [MILDEVKUB030]: FAILED! => {"changed": false, "msg": "groupadd: Permission denied.\ngroupadd: cannot lock /etc/group; try again later.\n", "name": "kube-cert"}
即使我能够使用ssh从基本机器连接所有机器,我也会遇到这样的错误。如何跟踪运行此命令以部署Kubernetes群集的问题?您可能需要指定ssh用户或密钥
- 使用将用户名添加到库存中
ansible\u ssh\u用户=
- 使用以下内容添加密码:
ansible\u ssh\u密码=
如果没有-共享正在工作的ssh命令。如果删除了密码短语,ssh连接现在应该正常。
更改后是否更新了远程主机上的ssh密钥?如果您使用用户/密码组合登录。执行ansible的用户应该在sudoers文件中,以切换到root用户或其他特权用户
检查sudoers并尝试在目标服务器上手动执行sudo su root在尝试了大量研究后,我发现在运行ansible playbook时需要输入参数--“ask pass--been--ask been pass”。我试过下面的命令
sudo ansible-playbook -i inventory/sample/hosts.ini cluster.yml --user=docker --ask-pass --become --ask-become-pass
而且,当继续kubernetes集群部署时,将再次出现库存名称只需与小字母一起使用的问题。因此,我编辑了所有清单名称和etc/hostname以及带有小写主机名的/etc/hosts。并将所有小写字母放入库存文件中。现在它成功地工作了
/etc/hosts包含如下内容:
127.0.0.1 MILDEVDCR01.Milletech.us mildevdcr01
192.168.16.173 MILDEVKUB020.Milletech.us mildevkub020
192.168.16.176 MILDEVKUB030.Milletech.us mildevkub030
192.168.16.177 MILDEVKUB040.Milletech.us mildevkub040
[all]
mildevkub020 ansible_ssh_host=mildevkub020 ip=192.168.16.173 ansible_user=uName
ansible_ssh_pass=pwd
mildevkub030 ansible_ssh_host=mildevkub030 ip=192.168.16.176 ansible_user=uName
ansible_ssh_pass=pwd
mildevkub040 ansible_ssh_host=mildevkub040 ip=192.168.16.177 ansible_user=uName
ansible_ssh_pass=pwd
[kube-master]
mildevkub020
[etcd]
mildevkub020
[kube-node]
mildevkub020
mildevkub030
mildevkub040
[k8s-cluster:children]
kube-master
kube-node
etc/主机名
mildevdcr01
和hosts.ini文件,如下所示
127.0.0.1 MILDEVDCR01.Milletech.us mildevdcr01
192.168.16.173 MILDEVKUB020.Milletech.us mildevkub020
192.168.16.176 MILDEVKUB030.Milletech.us mildevkub030
192.168.16.177 MILDEVKUB040.Milletech.us mildevkub040
[all]
mildevkub020 ansible_ssh_host=mildevkub020 ip=192.168.16.173 ansible_user=uName
ansible_ssh_pass=pwd
mildevkub030 ansible_ssh_host=mildevkub030 ip=192.168.16.176 ansible_user=uName
ansible_ssh_pass=pwd
mildevkub040 ansible_ssh_host=mildevkub040 ip=192.168.16.177 ansible_user=uName
ansible_ssh_pass=pwd
[kube-master]
mildevkub020
[etcd]
mildevkub020
[kube-node]
mildevkub020
mildevkub030
mildevkub040
[k8s-cluster:children]
kube-master
kube-node
如果我们这样做,我们将在目标主机上部署Kubernetes集群 这里关于StackOverflow的另一个问题应该对您有用,因为我以这种方式删除了ssh密钥。我使用用户名和密码,然后我也得到了一个密码一样,是必需的错误。我更新了库存文件。你能检查一下吗?我通过密钥add-D删除了密钥标识。现在我不使用密钥方法。我正在尝试使用用户名和密码身份验证。然后我也得到了密码是必需的错误。我更新了我的清单和错误结果。你能检查一下吗?检查一下关于使用的文档——在通过之前询问——我相信它会提示输入密码。Quote:当与远程机器对话时,Ansible默认假定您使用的是SSH密钥。鼓励使用SSH密钥,但也可以在需要时通过提供选项ask pass使用密码身份验证。如果使用sudo功能,并且sudo需要密码时,也提供--ask变为passNo。我没有更新。因为我试图通过用户名和密码访问所有这些。在更新密钥之前,它会询问每个ssh的密码短语。现在它直接询问远程机器的密码。因为我没有更新所有那些机器的钥匙。如果我错了,请纠正我。但是我在ansible剧本ommand之前使用了sudo关键字。我正在使用sudo运行ansible命令以授予root权限。这还不够sudo:yes仅在用户存在于sudoers文件中时有效。尝试在远程节点上运行相同的命令,并检查输出如果托管在github上,是否可以发送playbook的链接,即cluster.yml?或者更新,以防您编写了一个任务,其中一个任务已变为真,因此使用上述参数和密码@Jacob sure。以上与密码无关,我相信让我检查一下密码。我会很快更新。此外,请尝试添加回购协议的链接,以防您正在使用来自社区的内容。kubespray很受欢迎,但检查起来很方便