Jenkins job Permission Denied

  Kiến thức lập trình

I want to create a Jenkins job which runs a terrascript file for creating an EC2 instance. This job also runs an ansible-playbook for installing Tomcat on the new instance created. Here is a part of the main.tf file

resource "aws_instance" "my_vm" {
ami           = var.ami //Linux AMI
instance_type = var.instance_type
key_name      = "DevOpsKey_Licenta"

subnet_id                   = aws_subnet.public_subnet.id
vpc_security_group_ids      = [aws_security_group.terra_tomcat_sg.id]
associate_public_ip_address = true

tags = {
  Name = var.name_tag
}

 provisioner "local-exec" {
   command = "echo ${aws_instance.my_vm.public_ip} >> /opt/infrastructure/inventory"
    } 
 }

and here is inventory file

[tomcat]

When the local-exec command runs it should write the ip adress in inventory file

When i run the Jenkins job i get this error

 [0m[1maws_instance.my_vm (local-exec):[0m [0mExecuting: ["/bin/sh" "-c" "sudo echo 
 3.81.123.86 > /opt/infrastructure-pipeline-terraform/inventory"]
 [0m[1maws_instance.my_vm (local-exec):[0m [0m/bin/sh: line 1: /opt/infrastructure- 
 pipeline-terraform/inventory: Permission denied
 [31m╷[0m[0m
 [31m│[0m [0m[1m[31mError: [0m[0m[1mlocal-exec provisioner error[0m
 [31m│[0m [0m
 [31m│[0m [0m[0m  with aws_instance.my_vm,
 [31m│[0m [0m  on main.tf line 158, in resource "aws_instance" "my_vm":
 [31m│[0m [0m 158: provisioner "local-exec" [4m{[0m[0m
 [31m│[0m [0m
 [31m│[0m [0mError running command 'sudo echo 3.81.123.86 >
 [31m│[0m [0m/opt/infrastructure-pipeline-terraform/inventory': exit status 1. 
 Output:
 [31m│[0m [0m/bin/sh: line 1: /opt/infrastructure-pipeline-terraform/inventory:
 [31m│[0m [0mPermission denied
 [31m│[0m [0m
 [31m╵[0m[0m
 [Pipeline] }
 [Pipeline] // stage
 [Pipeline] }
 [Pipeline] // withEnv
 [Pipeline] }
 [Pipeline] // node
 [Pipeline] End of Pipeline
 ERROR: script returned exit code 1
 Finished: FAILURE

LEAVE A COMMENT