在 Jenkins 管道上使用 --ask-vault-pass
Use of --ask-vault-pass on Jenkins pipeline
我正在剧本中使用 ansible-vault
,我想从 Jenkinsfile
调用它。我读到过您可以将密码保存在一个文件中,然后像那样调用它,但我想使用 --ask-vault-pass
.
我在 Jenkins 上创建了凭证(密文),我想使用它,但我不知道如何使用。一直在互联网上搜索,但我所看到的只是关于文件中 ansible-vault 密码使用的问题。
代码如下:
pipeline {
agent none
environment {
ANSIBLE_VAULT=credentials('ansiblevault')
}
stages {
stage ('Start docker node via Ansible') {
agent { label 'ansible_slave' }
steps {
sh 'ansible-playbook /etc/ansible/instance_start_stop.yml --ask-vault-pass -i hosts --user user1 --key-file /home/user1/.ssh/id_rsa'
}
}
}
}
在这种情况下我该如何使用凭据?谢谢!
感谢 Zeitounator 和 β.εηοιτ.βε 的回复!
我试过这个:
withCredentials([file(credentialsId: 'ansible_password', variable: 'ansibleVaultKeyFile')]) {
ansiblePlaybook playbook: 'instance_start_stop.yml', inventory: 'hosts', extras: "--user user1 --vault-password-file ${ansibleVaultKeyFile} --key-file /home/user1/.ssh/id_rsa'"
但是有一个问题是没有权限 permissions
因为我正在执行命令的用户不是 root。所以我需要 sudo
。我尝试使用 sudoUser
但无济于事。
最后我是这样实现的:
withCredentials([file(credentialsId: 'ansible_password', variable: 'ansibleVaultKeyFile')]) {
sh 'sudo ansible-playbook /etc/ansible/instance_start_stop.yml --vault-password-file ${ansibleVaultKeyFile} -i /etc/ansible/hosts --user user1 --key-file /home/user1/.ssh/id_rsa'
}
我正在剧本中使用 ansible-vault
,我想从 Jenkinsfile
调用它。我读到过您可以将密码保存在一个文件中,然后像那样调用它,但我想使用 --ask-vault-pass
.
我在 Jenkins 上创建了凭证(密文),我想使用它,但我不知道如何使用。一直在互联网上搜索,但我所看到的只是关于文件中 ansible-vault 密码使用的问题。
代码如下:
pipeline {
agent none
environment {
ANSIBLE_VAULT=credentials('ansiblevault')
}
stages {
stage ('Start docker node via Ansible') {
agent { label 'ansible_slave' }
steps {
sh 'ansible-playbook /etc/ansible/instance_start_stop.yml --ask-vault-pass -i hosts --user user1 --key-file /home/user1/.ssh/id_rsa'
}
}
}
}
在这种情况下我该如何使用凭据?谢谢!
感谢 Zeitounator 和 β.εηοιτ.βε 的回复!
我试过这个:
withCredentials([file(credentialsId: 'ansible_password', variable: 'ansibleVaultKeyFile')]) {
ansiblePlaybook playbook: 'instance_start_stop.yml', inventory: 'hosts', extras: "--user user1 --vault-password-file ${ansibleVaultKeyFile} --key-file /home/user1/.ssh/id_rsa'"
但是有一个问题是没有权限 permissions
因为我正在执行命令的用户不是 root。所以我需要 sudo
。我尝试使用 sudoUser
但无济于事。
最后我是这样实现的:
withCredentials([file(credentialsId: 'ansible_password', variable: 'ansibleVaultKeyFile')]) {
sh 'sudo ansible-playbook /etc/ansible/instance_start_stop.yml --vault-password-file ${ansibleVaultKeyFile} -i /etc/ansible/hosts --user user1 --key-file /home/user1/.ssh/id_rsa'
}