我正在使用aws_ec2库存插件,并希望在运行时将boto_profile作为一个变量传入。
我试图运行以下命令:
ansible-playbook playbook.yml --extra-vars profile=foo
在我的aws_ec2.yml插件文件中有:
boto_profile: "{{ profile }}"
这将返回错误:
The config profile ({{ profile }}) could not be found
我能够在我的剧本中使用profile变量。我使用的是ec2模块和profile: "{{ profile }}",如果我定义了一个静态库存,这个模块就会工作。
是否可以将profile变量传递到动态库存文件中?
发布于 2019-02-08 06:59:31
Jinja2模板不适用于库存配置文件。
使用环境变量AWS_PROFILE或AWS_DEFAULT_PROFILE在运行时设置配置文件。
喜欢:AWS_PROFILE=foo ansible-playbook playbook.yml
发布于 2022-05-14 16:03:36
我在GitLab CI/CD中使用了这一点,并且有同样的问题,但是您可以在动态库存中查找env变量,如下所示:
plugin: amazon.aws.aws_ec2
aws_access_key: "{{ lookup('env','AWS_ACCESS_KEY_ID') }}"
aws_secret_key: "{{ lookup('env','AWS_SECRET_ACCESS_KEY') }}"
regions:
- eu-central-1
groups:
webservers: "'app-server' in tags.Type"我可以在变量下的CI/CD中设置它,然后将它传递给docker容器。
https://stackoverflow.com/questions/54587333
复制相似问题