VMware и terraform

Thank you for reading this post, don't forget to subscribe!

рас­смот­рим неболь­шой при­мер, где мы опи­шем в кон­фи­гу­ра­ци­он­ных фай­лах и созда­дим две вир­ту­аль­ные маши­ны в дата цен­тре VMware vCenter. Буду пред­по­ла­гать, что terraform уже уста­нов­лен у Вас на управ­ля­ю­щем ком­пью­те­ре и мы сосре­до­то­чим­ся имен­но на напи­са­нии необ­хо­ди­мой кон­фи­гу­ра­ции. В первую оче­редь созда­дим рабо­чую дирек­то­рию, где у нас будут собра­ны все необ­хо­ди­мые фай­лы. Имен­но из этой дир­рек­то­рии мы будем запус­кать раз­лич­ные коман­ды terraform для их выполнения.

Пер­вый файл, в дан­ной дирек­то­рии будет main.tf, в кото­ром будут опи­са­ны свой­ства под­клю­че­ния к vSphere, а так­же ресур­сы vSphere, кото­рые необ­хо­ди­мы для наших вир­ту­аль­ных машин. Реаль­ный при­мер тако­го фай­ла пред­став­лен ниже.

В фай­ле main.tf в самом нача­ле мы опи­са­ли пере­мен­ные, кото­рые исполь­зу­ют­ся для под­клю­че­ния к систе­ма vSphere. Далее идет декла­ри­ро­ва­ние реаль­ных ресур­сов, кото­рые задей­ство­ва­ны в систе­ме vSpehre. В дан­ном при­ме­ре это назва­ние вир­ту­аль­но­го дата цен­тра VMware, назва­ние дата­сто­ра, на кото­ром будут хра­нить­ся дан­ные наших вир­ту­а­лок, а так­же име­на кла­сте­ра, вир­ту­аль­ной сети и шаб­ло­на ВМ, кото­рый будет задей­ство­ван при созда­нии новых машин.

Теперь нам нуж­но создать отдель­ный файл variables.tf, в кото­ром мы заде­кла­ри­ру­ем пере­мен­ные, исполь­зу­е­мые в нашем при­ме­ре. Эти пере­мен­ные — vsphere_user, vsphere_password, vsphere_server. Содер­жи­мое дан­но­го фай­ла пред­став­ле­но ниже.

Так­же созда­дим отдель­ный файл, кото­рый дол­жен назы­вать­ся terraform.tfvars. В нем мы опре­де­ля­ем уже кон­крет­ные зна­че­ния пере­мен­ных, кото­рые были ранее заде­кла­ри­ро­ва­ны в фай­ле variables.tf.

Теперь под­го­то­вим файл vm.tf, в кото­ром опи­шем две вир­ту­аль­ные маши­ны, кото­рые будут запу­ще­ны в про­цес­се рабо­ты terraform. При опи­са­нии свойств вир­ту­аль­ных машин, мы будем исполь­зо­вать пере­мен­ные инфра­струк­ту­ры, кото­рые до это­го опре­де­ли­ли. Так­же в terraform есть воз­мож­ность задать такие настрой­ки вир­ту­аль­ной маши­ны, как ip адрес, хост­нейм и DNS. Ниже пред­став­лен пол­ный файл с кон­фи­гу­ра­ци­ей этих вир­ту­аль­ных машин.

Когда все необ­хо­ди­мые фай­лы созда­ны, при­шло вре­мя для запус­ка terraform. Мы будем исполь­зо­вать 3 команды.

# terraform init
# terraform plan
# terraform apply

Так с помо­щью коман­ды terraform init про­изой­дет ини­ци­а­ли­за­ция terraform и загруз­ка про­вай­де­ра vsphere для свя­зи с систе­мой VMware. Коман­да terraform plan про­ана­ли­зи­ру­ет теку­щее состо­я­ние систе­мы и то, каков будет резуль­тат и изме­не­ния в слу­чае пол­но­цен­но­го выпол­не­ния задан­ных инструк­ций. Ну а уже с помо­щью terraform apply мы пере­да­дим инструк­ции в vCenter, и про­изой­дет созда­ние запла­ни­ро­ван­ных нами вир­ту­аль­ных машин.