Управление vCloud Director из командной строки vCD-CLI
vCD-CLI — это инструмент от VMware для управления инфраструктурой из командной строки. Основное преимущество заключается в том, что он позволяет автоматизировать процесс управления инфраструктурой. С его помощью можно управлять виртуальными машинами, сетями, хранилищами данных и так далее. Это делает его очень полезным инструментом для DevOps-инженеров и системных администраторов.
В этой статье мы рассмотрим процесс установки и использования vCD-CLI на примере нашей виртуальной инфраструктуры mClouds, создадим инфраструктуру с тремя виртуальными машинами: Active Directory, сервер 1С и Ubuntu для личного пользования.
Установка
- Сначала установите Python.
- Скачайте vCD-CLI с помощью pip3 и добавьте в PATH путь к вашему pip.exe.
Windows:
pip3 install --user vcd-cli set PATH=%PATH%;C:\Users\Administrator\AppData\Roaming\Python\Python36\Scripts
Mac OS X:
xcode-select --install sudo easy_install pip pip3 install --user vcd-cli export PATH=/Library/Frameworks/Python.framework/Versions/3.6/bin:$PATH pip3 install --user pbr pip3 install --user urllib3 pyopenssl
Ubuntu:
sudo apt-get install python3-pip gcc -y pip3 install --user vcd-cli
Инструкция по установке от VMware находится здесь.
Использование
Писать код и исполнять его мы будем на примере нашего облака на VMware vCloud Director. У нас пользователи получают учётную запись правами Organization Administrator, если вы используете учетную запись с теми же правами в другом облаке VMware, то сможете воспроизвести код из наших примеров. Приступаем!
Для работы с инфраструктурой vCloud Director понадобятся следующие данные: host, организация, дата-центр, название edge-gateway, пользователь, его пароль и версия API.
Список основных команд vCD-CLI:
Можно ознакомиться с полным описанием команд vCD-CLI на официальном сайте.
Также, выполнив любую команду с параметром “-h” , на экране появятся доступные опции и пояснения к ним. Например, выполнение этой команды:
vcd gateway services -h
даст такой вывод:
Давайте спроектируем инфраструктуру с тремя виртуальными машинами (AD, 1C и Ubuntu), сетью LAN01 и настроенными правилами файервола:
- Начнем с подключения к Org Vdc:
vcd login vcloud.vmware.com org admin --password PXXXXXXXXX --version 38.0 --vdc org-vdc
2. Создадим vApp под названием vapp01:
vcd vapp create vapp01
3. Создадим сеть "LAN01" (192.168.100.1/24) и настроим DNS:
vcd network routed create -g vdc-EDGE --subnet 192.168.100.1/24 --dns1 1.1.1.1 --dns2 8.8.8.8 LAN01
4. Подключим сеть LAN01 к vapp01:
vcd vapp connect vapp01 LAN01
5. В vapp01 создадим 3 виртуальные машины на Windows Server 2022 (AD), Debian12 (1C) и Ubuntu22 (личный):
vcd vapp create -c Templates -t WS2022 -m 8192 -u 1 -k 32768 -v AD vapp01 vcd vapp create -c Templates -t Debian12 -m 8192 -u 1 -k 32768 -v 1C vapp01 vcd vapp create -c Templates -t Ubuntu22 -m 8192 -u 1 -k 32768 -v Ubuntu vapp01
6. Подключим машины к LAN01 с адаптером VMXNET3 и установим статические IP-адреса:
vcd vm add-nic --adapter-type VMXNET3 --connect --network LAN01 --ip-address-mode MANUAL --ip-address 192.168.100.101 vapp01 AD vcd vm add-nic --adapter-type VMXNET3 --connect --network LAN01 --ip-address-mode MANUAL --ip-address 192.168.100.102 vapp01 1C vcd vm add-nic --adapter-type VMXNET3 --connect --network LAN01 --ip-address-mode MANUAL --ip-address 192.168.100.103 vapp01 Ubuntu
7. Установим правило SNAT для доступа в сеть Интернет из облачной локальной сети:
vcd gateway services nat create-snat --action snat -o 192.168.100.0/24 -t 77.202.130.56 vdc-EDGE --enabled --desc "SNAT for LAN01" --logging-disable
8. Добавим правила DNAT для доступа к машинам из внешней сети:
vcd gateway services nat create-dnat EDGE --action dnat -o 77.202.130.56 -t 192.168.100.101 --enabled --desc "DNAT for AD" --vnic 0 --original-Port 31001 --translated-Port 3389 --protocol tcp --logging-disable vcd gateway services nat create-dnat EDGE --action dnat -o 77.202.130.56 -t 192.168.100.102 --enabled --desc "DNAT for 1C" --vnic 0 --original-Port 31002 --translated-Port 22 --protocol tcp --logging-disable vcd gateway services nat create-dnat EDGE --action dnat -o 77.202.130.56 -t 192.168.100.103 --enabled --desc "DNAT for Ubuntu" --vnic 0 --original-Port 31003 --translated-Port 22 --protocol tcp --logging-disable
Установим правила Firewall:
vcd gateway services firewall create --name Access --action accept --enabled vdc-EDGE
В vCD-CLI вы можете удалить переменные source, destination и service правила FW, но добавить новые значения вместо стандартных (any, any, any) получится только из vCloud Director.
Готово!
Мы создали 3 ВМ, подключили их к сети и настроили правила FW и NAT. Делая тоже самое внутри vCD, мы бы потратили намного больше времени. Работая из командной строки, vCD-CLI дает отличную возможность для автоматизации процессов внутри vCloud Director.
vCD-CLI или Terraform?
Terraform — это инструмент для управления инфраструктурой от компании Hashicorp. Для управления инфраструктурой Terraform использует конфигурационные файлы в формате HashiCorp Configuration Language (HCL). В файлах HCL пользователь описывает то, какую инфраструктуру он хочет создать и какие ресурсы в ней должны быть.
Когда пользователь запускает Terraform, программа считывает конфигурационные файлы и создает ресурсы, описанные в них. Она также учитывает зависимости между ресурсами и создает ресурсы в нужном порядке. Если пользователь изменяет конфигурацию Terraform, например, добавляет новый ресурс или изменяет существующий, программа понимает, какие изменения нужно внести в инфраструктуру, чтобы ее состояние соответствовало описанному в конфигурационных файлах.
Так же как и vCD-CLI, Terraform позволяет автоматизировать процесс создания и управления инфраструктурой.
Различия vCD-CLI и Terraform:
1) Terraform позволяет указывать зависимости между ресурсами, что помогает управлять порядком их создания и удаления. В vCD-CLI это не требуется, т.к. команды исполняются в той последовательности, в которой вы их вводите.
2) Terraform позволяет описывать большинство популярных облачных платформ (Google Cloud, Oracle Cloud и т.д.). vCD-CLI подходит лишь для управления инфраструктуры на базе VMware vCloud Director.
3) Ввод команд через cmd намного быстрее и проще, чем построение кода с указанием зависимостей и переменных. Из-за структуры Terraform разные конфигурации могут сильно отличаться. Где-то все переменные занесены в отдельный файл, где-то они вручную заносятся в главный main.tf, а где-то части кода разделены на несколько файлов. Это сильно усложняет читаемость и изменение конфигурации.
4) В Terraform используется синтаксис языка HCL, его придется изучить. Команды в vCD-CLI - интуитивно понятны, есть официальная инструкция с подробным описанием всех опций.
5) Писать код для Terraform намного дольше, чем vCD-CLI. К примеру, в этой статье нам потребовалось всего 8 команд для создания VM, vApp, Network, правил NAT и подключения VM к сети.
Что выбрать?
Оба инструмента значительно упрощают работу с vCloud Director. Но нам в первую очередь важна возможность быстро и просто создавать и изменять виртуальные инфраструктуры, поэтому предпочитаем и советуем вам использовать vCD-CLI, как наиболее удобный продукт.
Виртуализация — неизбежная и незаменимая часть современной ИТ-инфраструктуры любого бизнеса. Что это такое и как она работает, рассмотрим в этой статье.
01 октября, 2024Как мы используем продукты VMware для виртуальных серверовМы строим облачную инфраструктуру на основе архитектуры этого бренда: используем VMware vSphere для создания виртуальных серверов и управления ими, панель VMware vCloud Director для управления облаком. В статье рассказываем, почему выбираем именно эти решения.
28 сентября, 2024Частные, публичные и гибридные облака: разные виды облачных сервисовРассказываем, что представляет собой гибридное облако, как оно работает, какие особенности имеет и кому подойдет
20 августа, 2024