Cloud-init: автоматическая установка hostname для виртуальной машины
О технологиях

Cloud-init: автоматическая установка hostname для виртуальной машины

11360
4 минуты

Внутри каждого шаблона для виртуальной машины в Облаке КРОК установлен cloud-init. Это великолепный инструмент для автоматизации рутинных операций в процессе начального запуска вашей виртуальной машины. В этой статье я расскажу, как автоматизировать установку имени сервера (hostname).

Как работает cloud-init

В каждом публичном Облаке (AWS, GCP, Azure) или частном Облаке (OpenStack или CloudStack) есть так называемый сервис метаданных. Задача этого сервиса предоставлять виртуальной машине информацию об окружении, в котором она запущена. Эта информация обычно как минимум содержит в себе:

  • Внутренний IP адрес ВМ
  • Публичный IP адрес ВМ
  • Имя сервера
  • Публичный SSH-ключ
  • Тип ВМ
  • и т.д.

Сервис метаданных для большинства облачных платформ доступен из виртуальной машины по адресу , получать информацию от которого очень удобно при помощи утилиты curl. Чтобы посмотреть список доступной вам информации, предоставляемой этим сервисом, выполните команду внутри вашей виртуальной машины, запущенной в Облаке:


	 curl http://169.254.169.254/latest/meta-data/

Например, ваша виртуальная машина может самостоятельно узнать собственный hostname следующим образом:


	 curl http://169.254.169.254/latest/meta-data/hostname

Cloud-init в свою очередь представляет собой набор скриптов, поддерживаемых сообществом в актуальном состоянии, который настраивает вашу виртуальную машину на основании информации из сервиса метаданных.

У сервиса метаданных есть одно интересное поле, которое может быть изменено в любой момент жизненного цикла виртуальной машины — «пользовательские данные» (user-data), доступное внутри виртуальной машины по адресу:


	 curl http://169.254.169.254/latest/user-data

Пользовательские данные сервиса метаданных используются для всевозможной автоматизации ваших шаблонов, например, автоматическая установка в процессе запуска необходимого ПО, задания имени сервера, установка и запуск ПО управления изменениями в конфигурации, т.к. Chef, Puppet или Ansible и т.д.

Сloud-init работает следующим образом: он читает данные настроек «Пользовательских данных» и, если они заданы в формате, который понимает cloud-init, то он может выполнять действия описанные в пользовательских данных, игнорируя настройки сервиса метаданных.

Задание имени хоста при загрузке виртуальной машины

Простейший пример «Пользовательских данных» — это задание имени хоста при загрузке виртуальной машины. Для этого в процессе создания виртуальной машины задайте «Пользовательские данные» следующим образом:


	 #cloud-config
	 hostname: node-3
	 fqdn: node-3.vol.avmaksimov.ru
	 manage_etc_hosts: true

Описание настроек:

  • #cloud-config — указание на то, что все дальнейшие инструкции предназначены для cloud-init
  • hostname — короткое имя хоста
  • fqdn — полное имя хоста
  • manage_etc_hosts — управлять содержимым файла /etc/hosts. Не забудьте изменить «пользовательские данные» и выставить эту опцию в false, если вам в последствие потребуется изменять содержимое файла /etc/hosts, в противном случае внесенные вами вручную изменения будут стерты после перезагрузки cloud-init-ом

Разверните свою инфраструктуру в Облаке КРОК
Предоставляем производительные виртуальные машины и диски для ваших бизнес-задач
25 февраля 2021
Свидетели DevOps: мифы и байки про девопсов и тех, кто их нанимает
Те, кто решил стать девопсом, видят в этой профессии заманчивые перспективы. Это новый уровень мышления, это творчество и возможность создавать, это безграничные просторы для самосовершенствования. Не секрет также, что девопсам хорошо платят. Вместе с тем, вокруг понятия DevOps сформировался некий культ, овеянный мифами и легендами.
1 минута
1322
4 декабря 2020
Дайджест обновлений Облака КРОК за осень 2020 г.
За осень в Облаке КРОК многое изменилось. Мы активно писали код и не успевали сообщать обо всех переменах. Постараемся исправиться и информировать вас ASAP, чтобы вы могли сразу же использовать новые фичи.
2 минуты
768
27 апреля 2020
Tatler, Glamour и другие журналы Condé Nast Россия выходят в срок благодаря решению для дистанционной работы КРОК
Condé Nast Россия — издатель lifestyle-журналов: GQ, Vogue, Tatler, Glamour, AD — ни на один день не приостановил свою деятельность в условиях карантина благодаря своевременно предоставленным ресурсам КРОК. ИТ-компания обеспечила виртуальными рабочими местами 300 сотрудников медиахолдинга.
2 минуты
1436
scrollup