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

По всем вопросам обращаться к @bykva. Рекламу не размещаю.
Download Telegram
Облачные лаборатории #vmware. Можно онлайн потыкать любую уже готовую развернутую продукцию vmware.
https://labs.vmware.com
список тегов, используемых в канале:

—-------------------------------
Лекции и материалы
—-------------------------------
#Занятие
#Лекции
Лекция

—---------
Linux
—---------
#ssh
#bash
#awk
#tmux
#console
#utils
#troubleshooting
#nmap

—----------
DevOps
—----------
#jenkins
#ansible
#git
kubernetes

—------------------
Virtualization
—------------------
#vmware
vagrant

—------------------
Networking
—---------------—
#networking

—---------
InfoSec
—---------
#vulns

—-------------
Windows
—-------------
#RDTS
#windows_server2012
#RDP

—------------------------------------------------
Ссылки и сторонние материалы
—------------------------------------------------
#read
#thirdparty

UPD 28/12/17
Монтируем datastore vmware из-под linux

В случае, когда у вас по тем или иным причинам нет возможности запустить esxi, но есть возможность загрузиться с live-cd, то примонтировать хранилище и выдернуть с него данные можно вот так:

apt install vmfs-tools
fdisk -l #смотрим номер нужного раздела
vmfs-fuse /dev/sdb5 /mnt/vmfs


#vmware #troubleshooting
Список тегов, используемых в канале:

—-------------------------------
Лекции и материалы
—-------------------------------
#Занятие
#Лекции
Лекция
#junior

—---------
Linux
—---------
#ssh
#bash
#bash_tips_and_tricks
#awk
#tmux
#console
#utils
#troubleshooting
#nmap
#apt
#bind
#sound
#power_management

—----------
DevOps
—----------
#jenkins
#ansible
#git
#kubernetes
#deploy
#ceph
#docker
#puppet

—------------------
Virtualization
—------------------
#vmware
vagrant

—------------------
Networking
—---------------—
#networking
#proxy
#socks

—---------
InfoSec
—---------
#vulns
#security
#ctf

—-------------
Windows
—-------------
#RDTS
#windows_server2012
#RDP

—------------
Datacenters
—---------—
#ovh
#hetzner

—-------
Other
—-------
#android
#jira

—------------------------------------------------
Ссылки и сторонние материалы
—------------------------------------------------
#read
#thirdparty

Updated: 29.05.18
Ansible vmware dynamic inventory

1) включаем поддержку vmware в конфиге ~/.ansible.cfg:

[inventory]
enable_plugins = vmware_vm_inventory

2) устанавливаем необходимые пакеты. Второй пакет - python sdk, команда установки взята из их гитхаба.

pip3 install --upgrade pyvmomi
pip3 install --upgrade git+https://github.com/vmware/vsphere-automation-sdk-python.git

3) записываем в файл доступы (это чисто для дебага, понятно что при нормальной работе это будет выглядеть по-другому)
hosts.vmware.yaml:

plugin: vmware_vm_inventory
strict: False
hostname: 10.65.223.31
username: administrator@vsphere.local
password: Esxi@123$%
validate_certs: False
with_tags: True


4) проверяем:

ansible-inventory --list -i hosts.vmware.yaml


#ansible #vmware
vmware Guest customization on Debian

из коробки не работает. Буду краток чтобы не вылить поток говен на вмваре.

Проблема: некорректный парсинг интерфейсов скриптом customization.pm, расположенном на вцентре.
Обсуждение: https://github.com/vmware/open-vm-tools/issues/130

Адекватное решение: исправление парсящего скрипта на вцентре. Примеры можно увидеть в обсуждении. Но некоторые пункты все равно придется выполнить, иначе скрипт не отработает (см 2.х)

Кривое решение1:
1.1 перевести дебиан на нетплан
1.2 заменить os_release на убунту 18.04+
После чего скрипты парсинга будут думать что ось - убунта и применять на него настройку нетплана. Тут есть еще несколько нюансов, но чтобы не повторяться, я их опишу только один раз чуть ниже.
Версия вцентра: 6.5 u2+

Кривое решение 2:
2.1 Поставить пакет net-tools лохматых годов. Именно из-за того что поменялся вывод ifconfig(sic!) поломался и парсинг.
https://launchpad.net/ubuntu/xenial/amd64/net-tools/1.60-26ubuntu1
2.2 Правим юнит файл open-vm-tools
https://kb.vmware.com/articleview?docid=56409
2.3 Создаем симлинк на dhcp
https://kb.vmware.com/s/article/2051469
2.4 Ставим гостевой ОС - ubuntu64

#vmware #debian #terraform
описываем динамически диски 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