[“共享连接已关闭。”],“ stdout”:“ sudo:使用ansible剧本时需要输入密码\ r \ n

时间:2019-04-03 07:38:50

标签: ssh kubernetes ansible kubespray

我正在尝试运行一本用于在ubuntu 16.04 OS上使用kubespray工具部署kubernetes集群的手册。我有一台安装了ansible和克隆的kubespray git存储库的基本计算机。集群中包含一个主节点和两个工作节点。

我的主机(已更新)文件,例如followig屏幕截图,

[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

hosts.ini文件的位置是/ inventory / sample。我正在尝试以下ansible命令

sudo ansible-playbook -i inventory/sample/hosts.ini cluster.yml --user=uName --extra-vars "ansible_sudo_pass=pwd"

我正在通过以下链接使用剧本“ cluster.yml”

https://github.com/kubernetes-sigs/kubespray/blob/master/cluster.yml

还有我的/ 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

更新的错误

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集群的问题吗?

4 个答案:

答案 0 :(得分:1)

您可能需要指定ssh用户或密钥

  • 使用以下名称将用户名添加到广告资源
ansible_ssh_user=<USERNAME>
  • 添加密码:
ansible_ssh_pass=<PASSWORD>

如果没有,请共享有效的ssh命令。

答案 1 :(得分:1)

如果您使用用户名/密码组合登录。与ansible一起执行的用户应该出现在sudoers文件中,以切换到root或其他特权用户

检查sudoers并尝试在目标服务器上手动执行sudo su root

答案 2 :(得分:1)

尝试了大量研究后,我发现在运行ansible剧本时需要放置参数“ --ask-pass --become --ask-become-pass”。我尝试了以下命令,

sudo ansible-playbook -i inventory/sample/hosts.ini cluster.yml --user=docker --ask-pass --become --ask-become-pass

并且,当继续进行kubernetes集群部署时,将再次出现库存名称仅需使用小写字母的问题。因此,我用小写的hostname编辑了所有清单名称和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

etc / hostname

mildevdcr01

和下面的hosts.ini文件

[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集群。

谢谢大家对我的回应。您的帮助对我来说非常有用。谢谢。

答案 3 :(得分:0)

如果删除了密码短语,则ssh连接现在应该可以了。 更改后,您是否在远程主机上更新了ssh密钥?