在最新版本的amazon linux上运行Ansible时遇到问题。
[root@ip-10-0-0-11 ec2-user]# yum install ansible --enablerepo=epel
[root@ip-10-0-0-11 ec2-user]# ansible-playbook
Traceback (most recent call last):
File "/usr/bin/ansible-playbook", line 44, in <module>
import ansible.playbook
ImportError: No module named ansible.playbook
使用AMI ID:ami-a10897d6。
有什么想法吗?
答案 0 :(得分:28)
默认情况下,python库文件似乎没有正确的权限。运行这个修复它为我。
[root@ip-10-0-0-11 ansible]# pip install ansible
答案 1 :(得分:5)
使用pip(单独使用,不与yum结合使用)可能是目前在亚马逊Linux上的最佳选择。如果它仍然存在,我建议摆脱安装了yum的副本。
epel和epel-testing(截至1.9.2)中的RPM规范目前仅处理RHEL,Fedora和SuSE,默认情况下安装Python 2.6下的所有内容,其中最新的Amazon Linux具有默认的Python 2.7。要使RPM安装在Amazon Linux下运行,还需要做一些工作......
答案 2 :(得分:4)
对于Amazon Linux2 AMI:
sudo yum update
sudo yum install ansible
或
sudo amazon-linux-extras install ansible2
对于Amazon Linux AMI:
sudo yum update
sudo yum install ansible --enablerepo=epel
对于Ubuntu 18.04 AMI:
sudo apt-get update
sudo apt-get install ansible
注意:您可以使用“ pip”安装ansible。
sudo yum install python-pip
sudo pip install ansible
答案 3 :(得分:3)
为什么不从git中查看源代码并检查最新的稳定版本。
git clone git://github.com/ansible/ansible.git --recursive
$ cd ./ansible
$ source ./hacking/env-setup
git checkout <VERSION>
答案 4 :(得分:1)
默认情况下,只需启用/etc/yum.repos.d/redhat-rhui.repo文件中的以下repo即可。
<强> rhui-REGION-RHEL - 服务器 - 额外/ 7Server / x86_64的强>
答案 5 :(得分:0)
此article表示您可以使用import json
# xpath to get the data in data-product
data_product = response.xpath('//*[@id="product-details"]/@data-product').extract_first()
# load the json in a dictionary
data = json.loads(data_product)
# get the value by key
reference = data['refererce']
delivery_out_of_stock = data['delivery_out_of_stock']
在Amazon Linux上安装ansible。
答案 6 :(得分:0)
此答案基于@ M.Rajput的答案。我想定义细节,这样我就不会忘记。
警告:仅在RHEL 7.7社区AMI(ami-029c0fbe456d58bd1)上进行了测试。
# modify yum repo enabled
sudo vi /etc/yum.repos.d/redhat-rhui.repo
# find entry titled [rhui-rhel-7-server-rhui-extras-rpms]
# change "enabled=0" to "enabled=1"
# save and quit file (vim command is :wq)
sudo yum install ansible
答案 7 :(得分:0)
在要获取最新版本的Ansible的Amazon Linux 2上,请勿使用yum(当前不会提供2.10.x),我建议您使用python3-pip。
sudo yum remove ansible
sudo yum install -y python3-pip
python3 -m pip install --user --upgrade pip # Do not run pip as sudo. Do this instead.
python3 -m pip install ansible
如果您还没有python3,则在执行上述操作之前可能需要执行以下步骤:
sudo yum install -y python3.7
在我的情况下,我需要使用ansible 2.10.x,因为它还具有require.yml文件的额外好处,因为它们能够直接从git存储库安装集合。