Часто существует случаев, когда вы захотите автоматизировать предоставление и конфигурацию капель цифровых океанов. Там есть множество инструментов, однако, Облако-init это отраслевой стандарт, который используется для инициализации и настройки экземпляров с пользовательские данные Отказ
Terraform — это инфраструктура-приспособление, которое позволяет пользователям безопасно и эффективно и эффективно строить, изменять и вердать вашу инфраструктуру. Он использует синтаксис высокого уровня для декларативно положения и управления инфраструктурой, позволяя способности разрушать конфигурацию на меньшие куски для лучшей организации, повторного использования и ремонтопригодности. Информация о установке и эксплуатации террафора можно найти здесь Отказ Проходя user_data Параметр в файл Terraform.yaml вы можете использовать автоматизацию для настройки капли цифровой океаны при загрузке. Больше на этом ниже.
Если TerraForm — это ваша предпочтительная инфраструктурная подготовка метода, то вы можете найти поставщик цифрового океана Terraporm на Github Repo здесь Отказ
Для любого поставщика инфраструктуры при использовании Terraform в качестве инструмента предоставления вам всегда нужно указать провайдер Блок, как видно здесь:
provider "digitalocean" {
token = var.do_token
}
Вот пример модуля, который использует пользовательские данные Чтобы настроить капельку во время загрузки:
# Create a server
resource "digitalocean_droplet" "my-dream-server-1" {
image = "ubuntu-18-04-x64"
name = "web-1"
region = "nyc2"
size = "s-1vcpu-1gb"
user_data = "I2Nsb3VkLWNvbmZpZwpwYWNrYWdlczoKICAtIGlmdG9wCiAgLSBubW9uCg=="
}
С помощью этого модуля у вас есть Ресурс это обозначает digitalocean_droplet Как тип ресурса, который вы хотите обеспечить, и использование переменных, таких как Project_id и user_data справиться с предоставлением. Когда вы предоставляете строку для user_data , вы обозначаете скрипт запуска, который голый металлический сервер будет работать на загрузке.
Использование облака-init для настройки капель цифровых океанов
Вы можете предусматривать новые серверы через API для получения пользовательских данных для вашего пакетного устройства через Облако-init услуга. Это позволяет автоматизировать различные задачи конфигурации сервера, выбрав директивы пользовательских данных по развертыванию сервера. Ваши предоставляемые задачи будут выполнены, когда ваш сервер загружается в первый раз. Есть два способа сделать это — Скрипты оболочки или облако-init Директивы. Мы собираемся говорить о директивах облачных инициаций.
Облако-init Директивы выполняются, когда ваш сервер загружается впервые, но синтаксис немного отличается. Ваш сценарий должен начать с # cloud-config Линия, в противном случае пользовательские директивы данных будут отклонены. Для дальнейшей ссылки я рекомендую проверить официальную документацию Cloud-init: https://cloudinit.readtheDocs.io/en/latest/index.html.
Простой пример Облако-init Сценарий, который был бы пропущен, это :
#cloud-config packages: - httpd - mariadb-server runcmd: - systemctl start httpd - sudo systemctl enable httpd - [ sh, -c, "chmod 755 /var/tmp" ]
Чтобы пройти этот сценарий данных в цифровую API Ocean, он должен сначала преобразовать в Base64 формат. На системе Linux вы сделаете следующее для вашего test.yaml файл:
:# base64 test.yaml I2Nsb3VkLWNvbmZpZwpwYWNrYWdlczogCiAtIGh0dHBkIAogLSBtYXJpYWRiLXNlcnZlcgpydW5j bWQ6CiAtIHN5c3RlbWN0bCBzdGFydCBodHRwZAogLSBzdWRvIHN5c3RlbWN0bCBlbmFibGUgaHR0 cGQKIC0gWyBzaCwgLWMsICJjaG1vZCA3NTUgL3Zhci90bXAiIF0K
Этот выходной текст должен быть получен через цифровые API океана user_data Параметр при заказе нового сервера.
Положить все вместе
Чтобы увидеть это в действии, укажите ресурсы провайдер Так что вы можете обозначить цифровой океан как платформа, которому вы оказываете. Ваш последний скрипт должен выглядеть так:
# Set provider
provider "digitlocean" {
token = var.do_token
}
# Create a server
resource "digitalocean_droplet" "my-dream-server-1" {
image = "ubuntu-18-04-x64"
name = "web-1"
region = "nyc2"
size = "s-1vcpu-1gb"
user_data = "I2Nsb3VkLWNvbmZpZwpwYWNrYWdlczoKICAtIGlmdG9wCiAgLSBubW9uCg=="
}
Это все, что есть к этому! Terraform — это действительно отличный инструмент для автоматизации инфраструктуры, как только вы понимаете синтаксис и как он работает.
Оригинал: «https://dev.to/appfleet/configuring-digital-ocean-droplets-with-cloud-init-4nh2»