Създаването на виртуална машина е скучно. Създаването на стотици отнема много време. cloud-init ви позволява да автоматизирате създаването на виртуална машина в Microsoft Azure.

Ако някога сте настройвали виртуална машина, знаете как работи. Щраквате тук и там, щракате още малко и накрая имате настроена система. Но тогава все още трябва да инсталирате софтуер и да конфигурирате VM според вашите предпочитания.

Сега си представете, че искате да настроите стотици виртуални машини. Щракването през инсталацията не е толкова ефективно. Вместо това трябва да автоматизирате процеса, доколкото е възможно, и точно тук се намесва cloud-init.

Нека да разгледаме как можете да автоматизирате инсталирането на ОС и конфигурацията на виртуална машина с помощта на cloud-init в Microsoft Azure.

Защо да използвате cloud-init за автоматизиране на създаването на VM?

cloud-init е мощен инструмент за автоматизация на внедряването, който Canonical, компанията зад Ubuntu, разработва.

С cloud-init можете да инсталирате и внедрите Linux операционни системи и да конфигурирате други аспекти на VM. Например, можете да използвате cloud-init, за да настроите потребителски акаунти, да инсталирате и конфигурирате софтуер, да добавите SSH ключове, каквото и да е.

instagram viewer

Понастоящем повечето доставчици на облачни услуги като Azure, Linode и Amazon Web Services (AWS) поддържат облачно иницииране.

Въпреки че cloud-init стартира на Ubuntu, сега поддържа всички основни дистрибуции на Linux, като openSUSE, Debian, Red Hat Enterprise Linux (RHEL) и др.

Освен за внедряване на софтуер в облака, можете също да използвате cloud-init за конфигуриране и инсталиране на софтуер на локални сървъри или виртуални среди като VirtualBox, KVM и VMware.

Ще използваме облачната платформа Microsoft Azure, за да автоматизираме внедряването на Ubuntu сървър с помощта на cloud-init.

Стъпка 1: Създаване на скрипт за стартиране на облак

cloud-init скриптовете използват модули за конфигуриране на различни аспекти на вашата система. Например ще използвате потребители модул за конфигуриране на потребителска информация и акаунти, и телохранител модул за конфигуриране на WireGuard и др. Има тонове други модули, които можете да използвате извън кутията.

Нека създадем скрипт за стартиране на облак, за да автоматизираме повечето от нещата, които конфигурирате, когато настройвате нова виртуална машина.

Ще създадем потребител с име „mwiza“ и ще му зададем парола. За по-лесно нека използваме парола с обикновен текст, но можете да я шифровате, ако желаете. Освен това добавете SSH ключа на потребителя към оторизираните ключове. Това ви позволява да деактивирате влизането с SSH парола по-късно за по-добра сигурност.

Освен създаването на нов потребител, скриптът трябва да направи следното:

  • Писане на файл: Създайте прост файл и запишете съдържание в него, като използвате write_files модул. Файлът ще бъде поставен в началната директория. Можете да използвате същите концепции за създаване на по-сложни файлове в бъдеще.
  • Изпълнение на команди: Ще изпълняваме прости команди за конфигуриране на защитната стена на UFW, но това може да е всяка друга команда на Linux. Използвайте runcmd модул за изпълнение на всяка команда по ваш избор; това е подобно на изпълнението на Linux команди от изпълняване на Bash скриптове.
  • Конфигуриране на локали: Това задава вашите предпочитани локали като клавиатурна подредба, предпочитан език, часова зона и т.н.
  • Инсталирайте пакети: Използвайте любимия си мениджър на пакети, за да инсталирате пакети на вашата система. Например на базирани на Debian системи можете да използвате APT.

Това са само някои от модулите, които можете да използвате от cloud-init; има няколко други модула за автоматизиране на всякакви неща.

Ето пълния скрипт за стартиране на облак за конфигуриране на новия потребителски акаунт. Не забравяйте да замените SSH ключа с правилния. Освен това не се колебайте да промените потребителското име и всички други подробности.

vim: синтаксис=yaml

# Добавете системни потребители тук
потребители:
- име: mwiza
групи: потребители, sudo
обвивка: /bin/bash
gecos: mwiza
plain_text_passwd: Live-laugh-love12345G123
lock_passwd: невярно
ssh_authorized_keys:
- ssh-ed25519 BSHSDSDS3NzaC1sdfSDGSSDSDJ1KSDB: PWELJWEEWeKBrkXWbLJBs; ldfkagfafkC6li71Ra6i+NKkajdfi [email protected]

# Инсталирайте, актуализирайте и надграждайте пакети
package_upgrade: вярно
package_update: вярно
package_reboot_if_require: вярно

пакети:
- трасиране
- net-инструменти
- fail2ban

# Задайте локали
локал: en_UK
часова зона: Etc/UTC
клавиатура:
оформление: nb

write_files:
- път: /etc/salt/minion.d/master_ip_port.conf
съдържание: |
майстор: сол
главен_порт: 4506
публикуван_порт: 4505
- път: /home/mwiza/cloud-init.txt
съдържание: |
създаден от cloud-init в Azure

# Изпълнение на Bash команди за конфигуриране на софтуер и услуги
runcmd:
- ufw активиране
- ufw позволява ssh
- ufw позволи 80
- systemctl активира ufw

# Изключете VM, след като инициализацията е финализирана
изключване: изключване

Скриптът за стартиране на облак използва YAML, така че се уверете, че отстъпът е правилен, в противен случай няма да работи според очакванията.

Стъпка 2: Създаване на ресурс за виртуална машина

Следващата стъпка е да създадете необходимия ресурс в Azure за виртуалната машина. Влезте в Azure, ако вече имате акаунт, или създайте безплатен пробен акаунт, като отидете на azure.microsoft.com.

На началната страница на портала на Azure щракнете върху Създайте ресурс бутон. Изберете от списъка с най-популярните услуги на Azure Виртуална машина.

Следващата страница ви дава информация за създаване на VM ресурси като твърд диск, мрежа и др.

Дайте на вашата виртуална машина смислено име и изберете региона за внедряване. Освен това създайте група ресурси за вашата VM или използвайте съществуваща.

Под Удостоверяване тип, изберете Парола опция и въведете вашето потребителско име и силна парола.

След като попълните всички полета на тази страница, вашите данни трябва да са подобни на следните.

Стъпка 3: Добавяне на вашия скрипт за стартиране на облак

След това щракнете върху Разширено за добавяне на скрипта за стартиране на облак. Копирайте и поставете скрипта за стартиране на облак от първата стъпка в полето за потребителски данни.

Накрая щракнете върху Преглед + създаване бутон. Ако всичко е наред, тестът ще мине. В противен случай създателят на Azure VM ще ви напътства за корекциите, които да направите.

Стъпка 4: Влизане във вашата виртуална машина

Използвайте информацията за преглед на VM, за да получите публичния IP адрес на вашата виртуална машина и да влезете чрез SSH. Ако сте използвали правилния SSH ключ, системата няма да ви подкани да въведете потребителската парола.

След като влезете, можете да проверите дали файловете, които искате да създадете чрез скрипта, са там. Също, потърсете инсталирани пакети с APT и проверете дали защитната стена е конфигурирана правилно с помощта на състояние sudo ufw команда.

cloud-init също регистрира важна информация в /var/log/cloud-init.log файл. Той съдържа подробни съобщения за всички събития, случили се по време на инициализацията на облака. Можете да проверите този файл с помощта на командата cat, както следва:

котка /var/log/cloud-init.log

Автоматизирайте създаването на виртуална машина с cloud-init

cloud-init е мощен инструмент, който ви помага да автоматизирате инсталацията и настройката на Linux. Можете да го използвате в облака и на on-prem сървъри. Независимо дали просто искате да автоматизирате внедряването на вашата виртуална машина или трябва да разположите Linux сървъри в голям мащаб, cloud-init е чудесен избор.

Във връзка с това винаги защитавайте вашите SSH влизания за вашите базирани на облак виртуални машини, за да избегнете пробиви в сигурността.