【发布时间】:2017-10-11 14:57:25
【问题描述】:
我有一个 Jenkinsfile 试图启动一个 Ansible playbook,它引用了一些存储在 Ansible vault 加密文件中的参数。
Ansible 安装在 2.4.0.0 版本中
这是我的 jenkins 文件的 sn-p:
withCredentials([[$class: 'StringBinding', credentialsId: 'vault_token', variable: 'VAULT_TOKEN']]) {
ansiblePlaybook(
playbook: "./ansible/playbooks/deploy.yml",
inventory: "./ansible/hosts/hosts",
credentialsId: "$VAULT_TOKEN"
}
还有剧本:
---
- hosts: managers
become: true
tasks:
- include_vars: ../vaults/passwords.yml
- name: Log into Docker repository
docker_login:
registry: my.registry.org
username: "{{ reg_user }}"
password: "{{ reg_password }}"
本手册包含包含加密值的保管库文件。 当 Jenkins 执行 Jenkinsfile 时,我收到以下错误:Attempting to decrypt but no vault secrets found
为什么 ansible 不使用我在 Jenkinsfile 中传递给他的 credentialId 以及传递此凭据的好方法是什么?
【问题讨论】:
标签: jenkins ansible jenkins-pipeline ansible-2.x ansible-vault