Загрузка данных
ADM-PC:
Все последующие действия выполняются из-под доменного пользователя admin01
Устанавливаем пакет codium:
sudo apt-get update && sudo apt-get install -y codium
Проверить установку и запуск VSCodium:
Скачивает Terraform требуемой версии:
wget https://hashicorp-releases.yandexcloud.net/terraform/1.14.5/terraform_1.14.5_linux_amd64.zip
Устанавливаем Terraform требуемой версии:
sudo unzip terraform_1.14.5_linux_amd64.zip -d /usr/local/bin/
Проверить установку Terraform требуемой версии можно следующим образом:
Можно сразу создать файл ~/.terraformrc для дальнейшей корректной работы Terraform со следующим содержимым:
provider_installation {
network_mirror {
url = "https://terraform-mirror.mcs.mail.ru"
include = ["registry.terraform.io/*/*"]
}
direct {
exclude = ["registry.terraform.io/*/*"]
}
}
Устанавливаем пакет git:
sudo apt-get install -y git
Проверить установку git можно следующим образом:
Создаём каталог с именем ~/infra:
mkdir ~/infra
Внутри каталога ~/infra создаём подкаталоги: terraform, ansible и kubernetes
mkdir ~/infra/{terraform,ansible,kubernetes}
Проверить созданную структуру каталогов можно следующим образом:
Установить Ansible через pip на adm-pc:
внутри виртуального окружения ~/infra/ansible
с именем venv/ansible для пользователя admin01 можно следующим образом:
устанавливаем пакет python3-module-pip
sudo apt-get install -y python3-module-pip
создаём виртуальное окружения с помощью модуля venv
python3 -m venv ~/infra/ansible/venv/ansible
активируем виртуальное окружение
source ~/infra/ansible/venv/ansible/bin/activate
должно получится следующее:
устанавливаем ansible через pip в контексте виртуального окружения venv/ansible
pip install --upgrade pip && pip install ansible
Проверить установку Ansible через pip можно следующим образом:
Перейдём в директорию ~/infra/ansible:
cd ~/infra/ansible
Создадим требуемую структуру каталогов для хранения инвентарных файлов:
mkdir -p inventories/production/
Создадим файл инвенторя по пути: inventories/production/hosts
и перечислим требуемые хосты в формате YAML
all:
hosts:
infra-srv1:
infra-srv2:
infra-srv3:
Создадим директорию для хранения переменных для группы хостов:
mkdir inventories/production/group_vars
Создадим файл с переменными необходимыми для подключения ansible по пути: inventories/production/group_vars/all.yaml
укажем в данном файле какой использовать интерпретатор python для подключения
укажем в данном файле из-под какого пользователя выполнять подключения
укажем в данном файле какой SSH ключ (закрытый) использовать для подключения
---
ansible_python_interpreter: /usr/bin/python3
ansible_ssh_user: admin01
ansible_ssh_private_key_file: ~/.ssh/id_rsa
Проверить возможность ansible подключиться к описанным в инвентарном файле хостам можно следующим образом:
ansible -i ~/infra/ansible/inventories/production/hosts -m ping all
должен получится следующий результат:
Настрим каталог ~/infra для работы с системой контроля версий Git
деактивируем виртуальное окружения для работы с Ansible
и перейдём в каталог ~/infra
deactivate
cd ~/infra
указываем name и email для работы git
git config --global user.name "admin01"
git config --global user.email "admin01@au-team.cloud"
создаём файл .gitignore в текущем каталоге и добавляем в него следующее содержимое
ansible/venv/
инициализируем текущий каталог на работу с git
git init
добавляем все файла и каталоги в git
git add .
Проверить добавление файлов в git для отслеживания можно следующим образом:
добавляем commit:
git commit -m "first commit"