terraform으로 클라우드-init가 완성될 때까지 기다리는 처리 쓰기
모티프
개인 서브넷에서 인터넷으로 통신을 전송하는 NAT 공유기 기능을paplic 서브넷으로 제작된 가상 기기에서 실현한다.
NAT 공유기 기능은 클라우드-init를 사용하여 디버깅할 때 설정한 구조이지만 개인 서브넷의 가상 컴퓨터를 동시에 만들면 인터넷에서 포장에 실패합니다.
따라서NAT 공유기 기능의 설정(일련의cloud-iit 포함)이 완료되기를 기다린 후에 개인 서브넷을 만드는 가상 기기의terraform을 제작하였다.
주안점
NAT 라우터 기능
cloud-init에서 NAT 기능 설정의 마지막 부분에 터치 명령으로 signal 파일을 만듭니다.
resource "oci_core_instance" "nomad-server01" {
...
metadata = {
ssh_authorized_keys = file(var.ssh_public_key_path)
user_data = base64encode(data.template_file.nat-server.rendered)
}
...
}
# NAT機能セットアップ
...
# Finish
- touch /tmp/signal
null_resource와remote-exec를 사용하여signal 파일의 제작을 확인합니다
resource "null_resource" "wait-cloudinit" {
provisioner "remote-exec" {
connection {
type = "ssh"
host = oci_core_instance.nat-server01.public_ip
user = "opc"
private_key = file(var.ssh_private_key_path)
timeout = "15m"
}
inline = [
"while [ ! -f /tmp/signal ]; do sleep 2; done"
]
}
}
개인용 서브넷 VM
depends_on nullresource.wait-Cloudionit를 만든 후 실행하도록 설정합니다.
resource "oci_core_instance" "node01" {
...
depends_on = [
null_resource.wait-cloudinit,
]
}
참조 링크
Reference
이 문제에 관하여(terraform으로 클라우드-init가 완성될 때까지 기다리는 처리 쓰기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/thr/articles/6ddf5d90b82657텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)