首页 > 解决方案 > 来自 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' }}"

问题是我管理了大量的秘密,而且不得不这样做很烦人:

  1. 在 repo 设置中添加秘密
  2. 在 ansible-playbook 中定义变量
  3. 通过 GHA 工作流程中的环境变量显式公开机密。

当在其他 CI 工具(例如 Gitlab)中您不需要显式公开秘密时,您可以直接将秘密作为 env vars 使用。

有人对 GHA 的更好方法有建议吗?

标签: ansiblegithub-actions

解决方案


推荐阅读