Size: a a a

2019 March 05

AK

Alexander Kovalev in terraform_ru
по крайней мере провайдер для номада тоже очень спорный, да и в самой доке написано что он нужен для редких кейсов - залить и забыть
источник

N

Nikolai in terraform_ru
обидно просто, что ребята проделали большую работу, но он все-равно вышел сильно обгрызенный и с кучей ограничений, а на самом деле было бы просто достаточно разрешить исполнять кастомный yaml и сделать обвязку для этого в случае если он меняется
источник

N

Nikolai in terraform_ru
ну и типа сделать возмонжость дождаться определенного состояния
источник

N

Nikolai in terraform_ru
попробую запускать это все через ансибл
источник

VR

Vadim Rutkovsky in terraform_ru
Nikolai
ну и типа сделать возмонжость дождаться определенного состояния
чего не произойдет никогда, потому что кубернетес дописывает свои поля в этот yaml, например revisionVersion
источник

N

Nikolai in terraform_ru
так нам же не надо отслеживать как он там внутри кубера станет этот ямл
источник

N

Nikolai in terraform_ru
ну да ладно, чего воздух сотрясать
источник

S

Serg in terraform_ru
подскажите плз, какие best practice запускать терраформ на удаленном хосте? или это вообще нежелательно? например с провайдерами как libvirt, docker и т.д.
источник

DZ

Dmytro Zavalkin in terraform_ru
Nikolai
это первый такой провайдер в моей практике
посмотри на нью релик провайдер
источник

EG

Eduard Generalov in terraform_ru
Serg
подскажите плз, какие best practice запускать терраформ на удаленном хосте? или это вообще нежелательно? например с провайдерами как libvirt, docker и т.д.
libvirt умеет по саше, скорми ему dsn
источник

S

Serg in terraform_ru
Eduard Generalov
libvirt умеет по саше, скорми ему dsn
он то умеет, но имеджи способен только с хттп качать если на удаленке, каждый раз качать гиговые имеджи как-то бесит
источник

EG

Eduard Generalov in terraform_ru
Просто саурси их с хоста
источник

EG

Eduard Generalov in terraform_ru
/opt/images/some.img
источник

S

Serg in terraform_ru
Eduard Generalov
Просто саурси их с хоста
нет, так не работает
источник

EG

Eduard Generalov in terraform_ru
Работает...
источник

S

Serg in terraform_ru
источник

S

Serg in terraform_ru
пробовал, не находит имедж
источник
2019 March 06

S

Serg in terraform_ru
Eduard Generalov
Работает...
твоя правда 😳😄
источник

S

Serg in terraform_ru
вм не загружается толком, но имедж подхватил..
источник

EG

Eduard Generalov in terraform_ru
Serg
вм не загружается толком, но имедж подхватил..
data "template_file" "vm" {
 template = "${file("${path.module}/templates/vm")}"
 vars = {
   prefix = "${var.prefix}"
 }
}
resource "libvirt_cloudinit_disk" "vm" {
 provider = "libvirt.local"
 name = "${var.prefix}-vm.iso"
 pool = "${var.pool}"
 user_data = "${data.template_file.vm.rendered}"
}
resource "null_resource" "vm" {
 triggers {
   data = "${data.template_file.vm.rendered}"
 }
 provisioner "local-exec" {
   command = "[ -f debian-9.8.1-20190220-openstack-amd64.qcow2 ] || wget http://cdimage.debian.org/cdimage/openstack/current/debian-9.8.1-20190220-openstack-amd64.qcow2 ${path.root}/debian-9.8.1-20190220-openstack-amd64.qcow2"
 }
 provisioner "local-exec" {
   command = "cp ${path.root}/debian-9.8.1-20190220-openstack-amd64.qcow2 /opt/${var.prefix}-vm.qcow2"
 }
 provisioner "local-exec" {
   command = "qemu-img resize /opt/${var.prefix}-vm.qcow2 10G"
 }
 provisioner "local-exec" {
   command = "chown libvirt-qemu:libvirt-qemu /opt/${var.prefix}-vm.qcow2"
 }
}

resource "libvirt_volume" "debian-qcow2-vm" {
 provider = "libvirt.local"
 count = "${var.vm_count}"
 name   = "${var.prefix}-vm-${count.index}"
 pool   = "${var.pool}"
 source = "/opt/vm.qcow2"
 format = "qcow2"
 depends_on = [
   "null_resource.vm"
 ]
}
resource "libvirt_domain" "vm" {
 provider = "libvirt.local"
 count = "${var.vm_count}"
 name   = "${var.prefix}-vm-${count.index}"
 memory = "${var.vm_ram}"
 vcpu   = "1"

 cloudinit = "${libvirt_cloudinit_disk.vm.id}"

 disk {
   volume_id = "${libvirt_volume.debian-qcow2-vm.id}"
 }
 network_interface {
   network_name = "default"
   wait_for_lease = true
 }
 console {
   type = "pty"
   target_port = "0"
   target_type = "serial"
 }
 console {
   type = "pty"
   target_type = "virtio"
   target_port = "1"
 }
 graphics {
   type = "vnc"
   listen_type = "address"
   autoport = true
 }
}
output "vm_ip" { value = "${element(libvirt_domain.vm.*.network_interface.0.addresses[0], 0)}" }
источник