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

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

1457
4 минуты

Внутри каждого шаблона для виртуальной машины в K2 Cloud установлен 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-ом
15 ноября 2022
OpenShift остался без поддержки – как решить проблему российским клиентам
Интерес к семейству ПО для контейнеризации OpenShift был довольно высоким в корпоративном сегменте в прежние годы. По данным мониторинговой службы Datadog, только за прошлый год во всем мире количество пользователей платформ от RedHat увеличилось на 28%. Весной IBM объявил об уходе из России и прекращении поддержки всех программных продуктов для текущих клиентов. Разберемся, насколько критичной оказалась данная ситуация для заказчиков, и какие варианты действий существуют, чтобы минимизировать возможные риски отключения от сервиса.
0 минут
710
25 февраля 2021
Свидетели DevOps: мифы и байки про девопсов и тех, кто их нанимает
Те, кто решил стать девопсом, видят в этой профессии заманчивые перспективы. Это новый уровень мышления, это творчество и возможность создавать, это безграничные просторы для самосовершенствования. Не секрет также, что девопсам хорошо платят. Вместе с тем, вокруг понятия DevOps сформировался некий культ, овеянный мифами и легендами.
0 минут
1004
4 декабря 2020
Дайджест обновлений К2 Облака осень 2020 г.
За осень в К2 Облаке многое изменилось. Мы активно писали код и не успевали сообщать обо всех переменах. Постараемся исправиться и информировать вас ASAP, чтобы вы могли сразу же использовать новые фичи.
1 минута
299
scrollup