centos 无法使用terraform的远程执行语法在proxmox上自定义VM

ocebsuys  于 2022-11-23  发布在  其他
关注(0)|答案(1)|浏览(200)

我最近在为Terrafrom自动化编写脚本时遇到了一些问题。
在我的案例中,虚拟机使用的是proxmox平台,而不是云平台,因此我使用Telmate/proxmox作为创建虚拟机的mod(CentOS7)
虚拟机构建顺利,但当我想要自定义虚拟机(CentOS7)时,出现了一些问题
在terraform的远程exec Provisioner中有一个内联用法。根据官方文档,此用法适用于逐行指令
我按照此步骤操作,并在我的Provision脚本中使用它,脚本确实正常执行,它还生成了VM并执行了安装脚本。
安装脚本的内容是

yum -y install <something package>
install web service
copy web.conf, web program to /path/to/dir
restart web service

但是最重要的服务没有启动,但是当我通过SSH对VM启动脚本中的命令时,服务是正常的。也就是说,这是不能通过terraform的远程执行来实现的。
所以我想问一下,terraform是不是不适合定制一些服务,比如web服务器等?只适合生成一些资源,比如VM?
而另一个自定义脚本需要使用诸如ansbile?
以下是示例代码

provisioner "remote-exec" {
    inline = [
      "yum -y install tar",
      "tar -C / -xvf /tmp/product.tar",
      "sh install.sh",
    ]
  }
ycggw6v2

ycggw6v21#

后来我想明白了,不知道是开发者写的程序有问题还是其他原因,反正不能通过脚本启用服务(进程),但可以通过重启使用内置的系统服务(systemctl)来启用服务。

相关问题