将jenkins的证书从pipline传给ansible playbook
我试图将jenkins pipline到ansible playbook的凭证作为环境变量传递给docker 詹金斯·皮普林:将jenkins的证书从pipline传给ansible playbook,jenkins,ansible,jenkins-pipeline,Jenkins,Ansible,Jenkins Pipeline,我试图将jenkins pipline到ansible playbook的凭证作为环境变量传递给docker 詹金斯·皮普林: steps { withCredentials([usernamePassword(credentialsId: 'creds', passwordVariable: 'pass', usernameVariable: 'usr')]) { ansiblePlaybook( playbook: 'AnsiblePlaybook.yml',
steps {
withCredentials([usernamePassword(credentialsId: 'creds', passwordVariable: 'pass', usernameVariable: 'usr')]) {
ansiblePlaybook(
playbook: 'AnsiblePlaybook.yml',
inventory: 'AnsibleInventory.ini',
installation: 'ansible-latest',
disableHostKeyChecking: true,
become: 'yes',
extras: '-vvv',
extraVars: [
usr: ${usr},
pass: ${pass}
]
)
}
}
AnsiblePlaybook.yml:
docker_container:
name: mysql
image: mysql:5.6
state: started
env:
MYSQL_USER: "{{ usr }}"
MYSQL_PASSWORD: "{{ pass }}"
MYSQL_RANDOM_ROOT_PASSWORD: "yes"
我得到一个错误:
java.lang.NoSuchMethodError:在步骤中找不到此类DSL方法“$”您可以将参数声明为变量,并使用它来构建ansible: Jenkins文件参数:
Ansible with args:您可以将参数声明为变量,并使用它来构建Ansible: Jenkins文件参数: 回答args:我也有同样的问题。
你使用了错误的语法。 您忘记了
“
下面是一个正确的例子:
steps {
withCredentials([usernamePassword(credentialsId: 'creds', passwordVariable: 'pass', usernameVariable: 'usr')]) {
ansiblePlaybook(
playbook: 'AnsiblePlaybook.yml',
inventory: 'AnsibleInventory.ini',
installation: 'ansible-latest',
disableHostKeyChecking: true,
become: 'yes',
extras: '-vvv',
extraVars: [
usr: "${usr}", // <================ Here you need extra "
pass: "${pass}" // <================ Here you need extra "
]
)
}
}
步骤{
withCredentials([usernamePassword(credentialsId:'creds',passwordVariable:'pass',usernameVariable:'usr')])){
ansiblePlaybook(
剧本:“AnsiblePlaybook.yml”,
库存:“AnsibleInventory.ini”,
安装:“ansible最新版本”,
disableHostKeyChecking:为true,
变成‘是’,
附加条款:'-vvv',
外部变量:[
usr:“${usr}”,我也有同样的问题。
你使用了错误的语法。
您忘记了“
下面是一个正确的例子:
steps {
withCredentials([usernamePassword(credentialsId: 'creds', passwordVariable: 'pass', usernameVariable: 'usr')]) {
ansiblePlaybook(
playbook: 'AnsiblePlaybook.yml',
inventory: 'AnsibleInventory.ini',
installation: 'ansible-latest',
disableHostKeyChecking: true,
become: 'yes',
extras: '-vvv',
extraVars: [
usr: "${usr}", // <================ Here you need extra "
pass: "${pass}" // <================ Here you need extra "
]
)
}
}
步骤{
withCredentials([usernamePassword(credentialsId:'creds',passwordVariable:'pass',usernameVariable:'usr')])){
ansiblePlaybook(
剧本:“AnsiblePlaybook.yml”,
库存:“AnsibleInventory.ini”,
安装:“ansible最新版本”,
disableHostKeyChecking:为true,
变成‘是’,
附加条款:'-vvv',
外部变量:[
usr:“${usr}”,//这里可能还有其他一些问题,但首先引发的问题是,当没有要插值的字符串时,您正在使用变量字符串插值语法。请更改${usr}
到$usr
,对于pass也是如此。这里可能还有一些其他问题,但第一个问题是,当没有要插值的字符串时,您正在使用变量字符串插值语法。将${usr}
更改为$usr
,对于pass也是如此。