Skip to content

Latest commit

 

History

History
174 lines (137 loc) · 6.5 KB

README.md

File metadata and controls

174 lines (137 loc) · 6.5 KB

Практическое задание #2. Работа с Yandex Cloud CLI (yc)

Список задач практического задания:

2.1 Клонирование репозитория практикума на ВМ

REPO=yc-infra-mgmt-workshop
mkdir labs
cd labs
git clone /~https://github.com/nettworker/$REPO.git
cp -R $REPO/* .
rm -rf $REPO
unset REPO

2.2 Настройка профиля YC CLI

Важно! Для успешного выполнения дальнейших шагов необходимо успешное создание ВМ с привязанным SA в предыдущем практическом задании!

Получаем идентификатор ВМ через сервис метаданных:

cd ~/labs/lab-02-yc
VM_ID=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)

Получаем данные cloud_id и folder_id с помощью yc:

FOLDER_ID=$(yc compute instance get $VM_ID --format=json | jq -r .folder_id)
CLOUD_ID=$(yc resource folder get $FOLDER_ID --format=json | jq -r .cloud_id)

Создаём профиль с именем default для инструмента yc:

yc config profile create default
yc config set cloud-id $CLOUD_ID
yc config set folder-id $FOLDER_ID
unset CLOUD_ID FOLDER_ID VM_ID

Сохраняем нужные значения переменных в файл параметров окружения:

cat << EOF >> ~/.bashrc
# YC
export YC_CLOUD_ID=$(yc config get cloud-id)
export YC_FOLDER_ID=$(yc config get folder-id)
export YC_TOKEN=\$(yc iam create-token)
EOF

source $HOME/.bashrc

Убедиться, что yc профиль создан и активирован:

yc config profile list
yc config list

Проверить нужные переменные окружения:

env | grep YC_

2.3 Просмотр облачных ресурсов - подсети, ВМ

Получить список облачных подсетей:

yc vpc subnet list

Получить список виртуальных машин:

yc compute instance list

Получить детальную информацию о ВМ с именем infra-vm:

yc compute instance get --name=infra-vm

Получить детальную информацию о ВМ с именем infra-vm в формате JSON:

yc compute instance get --name=infra-vm --format=json | jq

2.4 Создание ВМ с веб-сервером

В данной части будет создаваться ВМ на базе LEMP стека.

Создать пару SSH ключей, для аутентификации на ВМ

ssh-keygen -t rsa -b 2048 -f $HOME/.ssh/id_rsa -q -N ""

Подготовить входные данные для создания ВМ с веб-сервером

YC_ZONE="ru-central1-b"
YC_NET=$(yc vpc network list --limit=1 --format=json | jq -r .[0].name)
YC_SUBNET=$YC_NET-$YC_ZONE

Создать ВМ с веб-сервером

yc compute instance create --name=lemp-vm --hostname=lemp-vm\
  --zone $YC_ZONE \
  --create-boot-disk image-folder-id=standard-images,image-family=lemp \
  --cores=2 --memory=4G --core-fraction=100 \
  --network-interface subnet-name=$YC_SUBNET,ipv4-address=auto \
  --ssh-key ~/.ssh/id_rsa.pub

2.5 Тестирование работы веб-сервера

Убедиться в том, что ВМ с веб-сервером создана

yc compute instance list

Сохранить IP адрес созданной ВМ в переменной окружения

LEMP_IP=$(yc compute instance get --name=lemp-vm --format=json | jq -r .network_interfaces[0].primary_v4_address.address)

Проверить сетевую доступность ВМ

ping -c 3 $LEMP_IP

Проверить работу веб-сервера на ВМ

curl http://$LEMP_IP

Подключиться к ВМ c веб-сервером по SSH

ssh yc-user@$LEMP_IP
exit

2.5* Опционально! Проверить работу веб-сервера со своего компьютера

Установить SSH соединение со своего компьютера к ВМ infra-vm. Порт tcp/9000 на локальном компьютере будет использоваться для туннелирования трафика через SSH в удаленную облачную сеть:

ssh -D 9000 -q -C admin@<зарезервированный-ip-адрес>

Установить расширение к веб-браузеру, на своём компьютере, например, Proxy SwitchyOmega.

Настроить расширение к веб-браузеру для работы через локальный порт 9000, протокол SOCKS5. Весь трафик от локального порта 9000 будет перенаправляться через SSH-proxy на ВМ infra-vm.

Открыть в браузере на локальном компьютере URL http://<значение переменной LEMP_IP>. Если всё настроено верно должна открыться страница сервера nginx.

2.6 Удаление ВМ с веб-сервером

Удалить ВМ с веб-сервером:

yc compute instance delete --name=lemp-vm

Убедиться, что ВМ успешно удалилась:

yc compute instance list

Поздравляем! Вы успешно справились с заданием!