Админим с Буквой
5.52K subscribers
303 photos
8 videos
59 files
1.16K links
Канал о системном администрировании, DevOps и немного Инфобеза.

По всем вопросам обращаться к @bykva. Рекламу не размещаю.
Download Telegram
описываем динамически диски vmware в terraform

terraform version:
0.12+

1) на нужном уровне задаем переменную

variable "disk_size" {
type = "list"
default = [
{
size = 20,
number = 0
},
{
size = 300,
number = 1
}]
}

2) создаем саму виртуальную машину:

resource "vsphere_virtual_machine" "vm" {
name = "${var.prefix}${var.name}-${count.index}"
count = "${var.instance_count}"

....

dynamic "disk" {
for_each = [for d in var.disk_size: {
size = d.size
number = d.number
}]

content {
label = format("disk%s", disk.value.number)
size = disk.value.size
thin_provisioned = "${data.vsphere_virtual_machine.template.disks.0.thin_provisioned}"
eagerly_scrub = "${data.vsphere_virtual_machine.template.disks.0.eagerly_scrub}"
unit_number = disk.value.number
}
}

Использовать count внутри динамических блоков нельзя. он наследуется с уровня выше, а не свой, внутри for_each. Поэтому тут в массиве не только размер дисков, но и его позиция в контроллере.

#terraform #vmware
vmware workstation 15.5 release

из интересного:

Better vSphere Compatibility: pvscsi

Workstation 15.5 introduces the pvscsi device, bringing improved desktop-to-datacenter compatibility for many virtual machine and OVA/OVF templates. No need to change virtual devices and settings when migrating workloads between Workstation and vSphere!

https://blogs.vmware.com/workstation/2019/09/workstation-15-5-available-now.html

#releases #vmware
vmware и memory balooning
очень неприятную вещь словил при использовании vmware. По прошествию некоторого времени гостевой операционной системе вменялось что у нее нет свободной памяти (на картинке желтый график упирается в потолок выделенной памяти). по факту, вмваре будет писать что память свободная на машине есть, а сервис внутри виртуалки будет загибаться от нехватки памяти. Интересное явление было замечено еще при мигрировании вм между нодами кластера - память моментально освобождается (нет на графике). тоже самое можно заметить при увеличении памяти в гостевой ос на лету - см 10/23 - видим провал, а затем резкий взлет до потолка. В конечном итоге попробовал 2 решения проблемы - снес вмваре тулз и ребутнулся, но это не помогло и память на одном из серверов через сутки снова стрельнула до потолка, второе решение - резервация памяти. применено 10/24 и как можете заметить примерно за сутки сервис вышел на рабочее потребление памяти и далее в потолок более не упирается. Голубым цветом показаны кэши.

#vmware
Немного извращения или как поставить в vsphere ОС с iso без iso

Дисклаймер: после длинного обсуждения в чате этой заметки мы выяснили, что этот совет может для кого-то быть плохим и вместо того чтобы делать то что описано ниже вам следует отложить задачу и настраивать рабочие процессы, чтобы не обходить требования ИБ.

Дано:
1) глубокий вечер пятницы, и отдельный департамент иб, который выдает права на гипервизор
2) возможность создавать виртуалки на всфере
Не дано:
1) запрещен доступ по tcp\902 до хостов, в связи с чем невозможна работа консоли vrmc и подключение client device iso
2) запрещены по-умолчанию доступы между виртуалками, в связи с чем невозможно устроить загрузку образа по сети
3) запрещена загрузка iso в библиотеку\хранилище\папку, в связи с чем невозможно подключить iso из vsphere

Один очень хороший человек из группы @vmugru дал совет, что головой можно не только есть, в связи с чем родился такой способ:

1) к любой виртуалке с гостевой ос на linux добавляем диск ISO_DISK размером >= size_of(iso).
2) rsync iso to vm
3) подключаемся к этой виртуалке и делаем
```dd /path/to/iso > /dev/ISO_DISK```
4) отключаем ISO_DISK от исходной виртуалки и подключаем его вторым* диском к новой виртуалке без гостевой ОС
5) в bios указываем что хотим грузиться со 2 диска
6) PROFIT! далее выполняем действия как при обычно подключенном iso

*вторым диском я сделал потому что софт, который выполняет установку с диска не дает возможности кастомизированной установки (сапожники, да). Поэтому когда софтина предлагает эрейзить все и поставить софт на диск, по счастливому стечению обстоятельств она выбирает именно первый диск и не трогает тот с которого она собственно и загрузилась. Этот нюанс в случае обычной установки не играет роли и можно добавлять основной диск для установки ОС после того как подключили ISO_DISK. просто понимать порядок загрузки с дисков.

#vmware
Тупняк длинною в пару часов дебага

Когда создаете виртуалку терраформом методом клонирования из шаблона (vsphere), переносятся не все свойства исходного шаблона. Так, например, свойство firmware по-умолчанию в терраформе принимает значение "bios". А у вас, например, должно быть efi, в результате виртуалка не грузится, хотя если склонировать из шаблона руками - все ок. Так что некоторые вещи нужно все равно принудительно задавать руками - забирать из data или просто прописывать в явном виде. Такие дела....

#vmware #terraform #windows
решение проблемы с Application-Aware снапшотами в vmware и win server

http://bit.ly/37nPIAD

#vmware #windows
Продолжаем накидывать ресурсы на лету в vmware

Про диск (добавление, расширение) я уже писал, про камень тоже недавно, в этот раз про память. У vmware есть на эту тему kb - можете прочитать там, я вывел из этого более короткую форму:

for num in $(grep offline /sys/devices/system/memory/*/state | grep -oP '\d+'); do echo online > /sys/devices/system/memory/memory${num}/state; done

enjoy! #vmware #linux #hotadd
релизнул новую версию модуля для создания вм в vsphere через terraform

https://github.com/bykvaadm/terraform-modules/tree/master/vsphere-virtual-machine

из новенького:
- 3 типа машин (винда, линукс, болванка)
- ресурсы в k8s для автоматической постановки на мониторинг в prometheus через k8s sd
- добавлены различные ресурсы из оригинального модуля

З.Ы. ридми ущербен, да.

#vmware #terraform
Акт 2: "Ынтырпрайз"
Переходим снова в интерфейс вцентра и отсоединяем диск от виртуалки в которой работали и от виртуалки-родителя - просто удаляем из hardware полностью диск (ну не удаляя его с хранилища естественно). Говорить про политику решений в ынтырпрайзе можно много, и этот случай яркое тому доказательство. Нельзя просто так взять и через интерфейс уменьшить размер диска. Поэтому что? конечно же консоль. Логинимся по ssh на сервер который имеет доступ к хранилищу где лежит наш диск.

1. Открываем файл

vi <vm-name>.vmdk

ищем строчку
RW 209715200 VMFS "<vm-name>.vmdk"

и меняем число на количество блоков нашего диска. Диск у нас был 100, должен стать 50, поэтому здесь можно просто разделить число пополам: 209715200/2 или пойти по пути вычислений - взять наш последний блок и прибавить один: 104857599+1 или полностью: (50*1024*1024*1024)/512 = 104857600.

2. Остался последний штрих, диск нужно уменьшить в размере физически с помощью конвертирования:
мы копируем диск при этом новый файл получит реальный размер в 50Gb а не в 100Gb, и в данном случае прогресс остановится на 50% т.к. сократили в 2 раза.

vmkfstools -i <vm-name>.vmdk -d thin shrunk-<vm-name>.vmdk  

Подменяем старый диск на новый

vmkfstools -E <vm-name>.vmdk original-<vm-name>.vmdk
vmkfstools -E shrunk-<vm-name>.vmdk <vm-name>.vmdk

3. Подцепляем обратно к виртуалке новый диск (со старым именем) и запускаем vm

Теперь у нас со стороны vmware действительно будет диск размером 50Gb в тонкой провизии, а внутри вм будет раздел ~50Gb.

#vmware