I’m trying to build jenkins API job using terraform and using null_resource to execute curl inside it, also using MySQL provisioner in same .tf file to create user in MySQL server. Terraform is provisioning MySQL user but not creating API job in jenkins? Also run the curl command from local it is creating job in jenkins.
provider "mysql" {
endpoint = "${var.db_endpoint}"
username = "${var.database_username}"
password = "${var.database_password}"
}
resource "mysql_database" "app" {
name = "${var.database_name}"
}
resource "mysql_user" "Anviton" {
user = "${var.db_user}"
host = "${var.host}"
plaintext_password = "${var.db_user_password}"
}
resource "mysql_grant" "Anviton" {
user = "${mysql_user.Anviton.user}"
host = "${mysql_user.Anviton.host}"
database = "app"
privileges = ["SELECT", "UPDATE"]
}
resource "null_resource" "ott-jenkins-api-job" {
provisioner "local-exec" {
command=<<EOT
curl -s -o /dev/null -w "%%{http_code}" -X POST "http://10.0.1.63:8080/createItem?name=ott_test_job" -u username:password --data-binary @Phando_BhaktiNow_Ott_Prod.xml -H "Content-Type:text/xml"
EOT
}
}