我最近在为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",
]
}
1条答案
按热度按时间ycggw6v21#
后来我想明白了,不知道是开发者写的程序有问题还是其他原因,反正不能通过脚本启用服务(进程),但可以通过重启使用内置的系统服务(systemctl)来启用服务。