我正在尝试使用 playbook 在 ansible 中安装软件包。为此,我需要在 yum 中安装一些软件包,在 apt 中安装一些软件包。我使用的 ansible 版本是:
root@server:~# ansible --version
ansible 2.6.0
当我尝试为 yum 运行此剧本时,出现以下错误:
fatal: [centos]: FAILED! => {"changed": false, "module_stderr": "Shared connection to centos closed.\r\n",
"module_stdout": "sudo: a password is required\r\n",
"msg": "MODULE FAILURE", "rc": 1}
to retry, use: --limit @/root/test.retry
当我尝试为 apt 运行此剧本时,出现以下错误:
致命:[服务器]:失败! => {“changed”:false,“module_stderr”:“与服务器的共享连接已关闭。\r\n”,“module_stdout”:“回溯(最近一次调用最后一次):\r\n 文件 \”/tmp/ansible_t9NeHG/ansible_module_apt.py\“,第 269 行,位于 \r\n 来自 ansible.module_utils.urls 导入 fetch_url \r\n 文件 \”/tmp/ansible_t9NeHG/ansible_modlib.zip/ansible/module_utils/urls.py\“,第 95 行,位于 \r\n 文件 \”/usr/lib/python2.7/dist-packages/urllib3/contrib/pyopenssl.py\“,第 54 行,位于 \r\n 导入 OpenSSL.SSL \r\n 文件 \”/usr/lib/python2.7/dist-packages/OpenSSL/在里面.py\", 第 8 行,位于 \r\n 来自 OpenSSL 导入 rand、crypto、SSL\r\n 文件 \"/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py\", 第 118 行,位于 \r\n SSL_ST_INIT = _lib.SSL_ST_INIT\r\nAttributeError:'module' 对象没有属性'SSL_ST_INIT'\r\n", "msg": "MODULE FAILURE", "rc": 1}
我看过各种帮助帖子,但他们建议的运行剧本的方式就是这样。我哪里犯错了?你能具体说明一下吗?提前谢谢
答案1
我确实做了很多工作来解决这个问题。原因很简单。我们需要在远程机器上安装 Python。
为此,使用
# apt-get install python-pip
检查远程机器上安装的python版本:
# python --version
接下来,在远程机器上确保我们可以不用密码访问它们。为此,编辑sudoers
文件:
# visudo or #nano /etc/sudoers
然后在文件末尾添加
user ALL=(ALL) NOPASSWD: ALL
并保存。
这将起到作用,并且应该适用于每一个安装yum
步骤apt
。