gpt4 book ai didi

Ansible ec2 : "boto required for this module"

转载 作者:行者123 更新时间:2023-12-03 23:50:44 24 4
gpt4 key购买 nike

当我运行这个简单的 Ansible playbook 时:

- name: EC2 Test Example
hosts: localhost
connection: local
gather_facts: False

tasks:
- name: EC2 Instance
ec2:
# Amazon EC2 key pair name
key_name: my-key-pair
# Amazon EC2 Security Group
group: my-security-group
instance_type: t2.micro
# Latest from https://wiki.debian.org/Cloud/AmazonEC2Image/Jessie
image: ami-221ea342
wait: yes
register: ec2

我和 venv/bin/ansible-playbook -i localhost, playbook.yml 一起运行:
PLAY [EC2 Test Example] ********************************************************

TASK [EC2 Instance] ************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg": "boto required for this module"}
to retry, use: --limit @/Users/admin/temp/ansec2/playbook.retry

PLAY RECAP *********************************************************************
localhost : ok=0 changed=0 unreachable=0 failed=1

很明显,我在我正在使用的 venv 以及我的默认系统 Python 中安装了 boto:
➜  ansec2 venv/bin/pip list
Package Version
--------------- --------
ansible 2.2.1.0
boto 2.45.0
boto3 1.4.4
botocore 1.5.4
...

我已经阅读了一些类似的帖子,但没有看到可行的解决方案。

最佳答案

您问题的根本原因是 -i localhost,黑客。您不再需要在 Ansible 中使用它。

你可以运行:

ansible-playbook playbook.yml

并与 connection: local在剧中 Ansible 将使用 venv 设置的 Python 可执行文件。

当您使用 -i localhost, hack,Ansible 调用其默认值 /usr/bin/python .

在这种情况下,您仍然可以添加 ansible_python_interpreter告诉 Ansible 使用这个特定环境的参数:
ansible-playbook -i localhost, playbook.yml --extra-vars "ansible_python_interpreter=/Users/admin/temp/ansec2/venv/bin/python" 

但我认为你应该避免它并使用第一种方法。

关于Ansible ec2 : "boto required for this module",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41774695/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com