You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从外部文件向Ansible动态清单文件传递AWS访问密钥

向Ansible AWS动态清单传递外部凭证的方法

方法一:通过额外变量传递

  • 修改aws_ec2.yaml,将硬编码的凭证替换为变量引用:
---
plugin: aws_ec2

aws_access_key: "{{ my_access_key }}"
aws_secret_key: "{{ my_secret_key }}"

regions:
  - us-west-2
  • 运行playbook时,同时指定动态清单和外部变量文件:
ansible-playbook -i aws_ec2.yaml -e @key.yaml my_playbook.yaml

若需单独验证清单,可执行:

ansible-inventory -i aws_ec2.yaml -e @key.yaml --list

方法二:通过环境变量传递

AWS EC2动态清单插件默认支持读取AWS标准环境变量,有两种实现方式:

  • 直接设置环境变量后运行命令:
export AWS_ACCESS_KEY_ID="你的access key"
export AWS_SECRET_ACCESS_KEY="你的secret key"
ansible-playbook -i aws_ec2.yaml my_playbook.yaml
  • 也可在aws_ec2.yaml中显式引用环境变量(可选,插件自动识别标准变量时可省略此步骤):
---
plugin: aws_ec2

aws_access_key: "{{ lookup('env', 'AWS_ACCESS_KEY_ID') }}"
aws_secret_key: "{{ lookup('env', 'AWS_SECRET_ACCESS_KEY') }}"

regions:
  - us-west-2

方法三:通过Ansible Vault加密凭证文件

若需避免明文存储凭证,可使用Vault加密key.yaml:

  • 加密凭证文件:
ansible-vault encrypt key.yaml

按提示设置加密密码即可。

  • 运行playbook时,指定加密文件并提供解密密码:
ansible-playbook -i aws_ec2.yaml -e @key.yaml --ask-vault-pass my_playbook.yaml

也可提前创建权限为600的Vault密码文件,避免每次输入密码:

ansible-playbook -i aws_ec2.yaml -e @key.yaml --vault-password-file vault_pass.txt my_playbook.yaml

注:此方法下aws_ec2.yaml的变量引用需与方法一保持一致。

内容的提问来源于stack exchange,提问作者bobs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 21:00:53