Требуемые условия завершения
Задание:
i. В качестве рабочей директории используйте путь /home/altlinux/bin;
ii. Скрипт должен использовать файл конфигурации /home/altlinux/bin/cloudinit.conf для настройки подключения к облачному провайдеру;
iii. В файле cloudinit.conf допускается использование комментариев, поясняющих назначение параметров;
iv. При проверке задания, эксперты могут изменить настройки только в файле cloudinit.conf. Другие файлы редактироваться не будут.
Вариант реализации:
Cloud-ADM:
- Создадим файл конфигурации зеркала Terraform
- Файл должен иметь имя .terraformrc
- Файл должен быть расположен в домашнем каталоге пользователя
vim ~/.terraformrc
-
- Помещаем в данный файл следущее содержимое:
provider_installation {
network_mirror {
url = "https://terraform-mirror.mcs.mail.ru"
include = ["registry.terraform.io/*/*"]
}
direct {
exclude = ["registry.terraform.io/*/*"]
}
}
- Из под пользователя altlinux создаём директорию bin в домашнем каталоге пользователя и переходим в неё:
mkdir ~/bin && cd ~/bin
- Создадим файл cloudinit.conf в котором опишем необходимые переменные (будут использоваться как переменные окружения) для работы terraform и openstack-cli с Кибер Инфраструктурой:
vim cloudinit.conf
-
- помещаем в данный файл следующее содержимое:
# Terraform
export TF_VAR_OS_AUTH_URL=https://<ДОМЕННОЕ_ИМЯ>:5000/v3
export TF_VAR_OS_PROJECT_NAME=<ИМЯ_ПРОЕКТА>
export TF_VAR_OS_USERNAME=<ИМЯ_ПОЛЬЗОВАТЕЛЯ>
export TF_VAR_OS_PASSWORD='<ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ>'
# openstacl-cli
export OS_AUTH_URL=https://<ДОМЕННОЕ_ИМЯ>:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_AUTH_TYPE=password
export OS_PROJECT_DOMAIN_NAME=<ИМЯ_ДОМЕНА_В_КОНТЕКСТЕ_КИБЕР_ИНФРАСТРУКРУТЫ>
export OS_USER_DOMAIN_NAME=<ИМЯ_ДОМЕНА_В_КОНТЕКСТЕ_КИБЕР_ИНФРАСТРУКРУТЫ>
export OS_PROJECT_NAME=<ИМЯ_ПРОЕКТА>
export OS_USERNAME=<ИМЯ_ПОЛЬЗОВАТЕЛЯ>
export OS_PASSWORD='<ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ>'
- Применяем переменные окружения указанные в файле
- Стоит учесть данное действие при конечном формирование финального скрипта deploy-cloudinfra.sh (будет рассмотрено далее)
source cloudinit.conf
- Проверяем возможность взаимодействовать чере openstack-cli с Кибер Инфраструктура:
- Например выведем список серверов (Виртуальных Машин) или сетей:
- Создадим файл provider.tf в контексте директории /home/altlinux/bin и опишем параметры для подключения к провайдеру openstack для работы с Кибер Инфраструктура используя данного провайдера:
vim provider.tf
-
- Помещаем в данный файл следущее содержимое:
terraform {
required_providers {
openstack = {
source = "terraform-provider-openstack/openstack"
version = "2.1.0"
}
}
}
provider "openstack" {
auth_url = var.OS_AUTH_URL
tenant_name = var.OS_PROJECT_NAME
user_name = var.OS_USERNAME
password = var.OS_PASSWORD
insecure = true
}
- Создадим файл variables.tf и опишем переменные для подключения к провайдеру openstack:
- При таком подходе переменные будут браться из значений определённых в переменных окружения, которые в свою очередь были указаны в файле cloudinit.conf, т.к. по условиям задания эксперты могут только отредактировать его (например для запуска в другом проекте):
vim variables.tf
-
- Помещаем в данный файл следущее содержимое:
variable "OS_AUTH_URL" {
type = string
sensitive = true
}
variable "OS_PROJECT_NAME" {
type = string
sensitive = true
}
variable "OS_USERNAME" {
type = string
sensitive = true
}
variable "OS_PASSWORD" {
type = string
sensitive = true
}
- Для наглядности и удобной работы в контексте директории /home/altlinux/bin создадим директорию terraform и переместим в неё все файлы связанные с развёртыванием инфраструктуры (*.tf):
mkdir terraform
mv *.tf terraform/
- Инициализируем текущий каталог для работы с terraform и провайдером openstack:
cd /home/altlinux/bin/terraform
terraform init
-
- Результат:
Последнее изменение: вторник, 24 июня 2025, 12:54