您好EC2实例已创建,但作为userdata.sh一部分的命令未得到执行。当我通过腻子手动连接到EC2时,我发现EC2实例中未安装nginx。为了验证脚本是否正在执行,我添加了echo消息,但是当我运行terraform apply时,命令提示符中未显示任何输出。如何验证用户数据是否正在执行?
我已经在C驱动器中安装了Terraform,并且以下脚本位于同一文件夹C:/Terraform/userdata.sh、C:/Terraform/main.tf中,我尝试给出的路径为$ {file(“ ./ userdata.sh”) }”,但仍然无法正常工作。
请指教,因为我正在学习terraform。谢谢。
#!/bin/bash -v
echo "userdata-start"
sudo apt-get update -y
sudo apt-get install -y nginx > /tmp/nginx.log
sudo service nginx start
echo "userdata-end"
Run Code Online (Sandbox Code Playgroud)
这在我的terraform程序[main.tf]中称为如下:
# resource "template_file" "user_data" {
# template = "userdata.sh"
# }
data "template_file" "user_data" {
template = "${file("userdata.sh")}"
}
resource "aws_instance" "web" {
instance_type = "t2.micro"
ami = "ami-5e8bb23b"
key_name = "sptest"
vpc_security_group_ids = ["${aws_security_group.default.id}"]
subnet_id = "${aws_subnet.tf_test_subnet.id}"
user_data = "${data.template_file.user_data.template}"
#user_data = "${template_file.user_data.rendered}"
#user_data = "${file("userdata.sh")}"
#user_data = "${file("./userdata.sh")}" …Run Code Online (Sandbox Code Playgroud) 我已经在 jenkins 中下载并安装了 Slack Notification Plugin 并在管道中使用了 slackSend,它之前可以工作,但现在出现如下错误: 在此之后,我下载了 Global Slack Notifier 插件,但仍然出现相同的错误,是否需要任何设置?请指教
[Pipeline] slackSend
run slackstepsend, step null:false, desc null:false
Slack Send Pipeline step configured values from global config - baseUrl: true, teamDomain: true, token: true, channel: false, color: false
ERROR: Slack notification failed. See Jenkins logs for details.
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: FAILURE
Run Code Online (Sandbox Code Playgroud)
代码如下:
if (dstry) {
def status = sh(returnStatus: true, script: "set +e; terraform plan -destroy -var-file=my.tfvars -out=destroy.tfplan")
echo "Plan …Run Code Online (Sandbox Code Playgroud)