ansible - 来自 github 操作秘密的 Ansible 变量
问题描述
我正在尝试在我的 ansible 剧本中使用 Githubactions 机密,然后将其传递给模板,但是没有用于 GHA 的查找插件。这不起作用:
- hosts: the-host
vars:
influxdb_pass: "{{ lookup('env', 'secret.INFLUXDB_PASS' }}"
我的解决方法是通过 GHA 环境变量公开秘密并使用 ansible env 查找插件:
name: Pull Request - Ansible
on:
pull_request:
branches:
- master
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Config updates
env:
INFLUXDB_PASS: ${{ secrets.INFLUXDB_PASS }}
- hosts: the-host
vars:
influxdb_pass: "{{ lookup('env', 'INFLUXDB_PASS' }}"
问题是我管理了大量的秘密,而且不得不这样做很烦人:
- 在 repo 设置中添加秘密
- 在 ansible-playbook 中定义变量
- 通过 GHA 工作流程中的环境变量显式公开机密。
当在其他 CI 工具(例如 Gitlab)中您不需要显式公开秘密时,您可以直接将秘密作为 env vars 使用。
有人对 GHA 的更好方法有建议吗?