homework 14.2: complete all tasks

This commit is contained in:
2022-12-27 10:15:07 +07:00
parent 5b51a90b4d
commit 4270c65a26
5 changed files with 140 additions and 0 deletions

View File

@@ -0,0 +1,105 @@
Выполнение [домашнего задания](https://github.com/netology-code/clokub-homeworks/blob/clokub-5/14.2.md)
по теме "14.2 Синхронизация секретов с внешними сервисами. Vault"
## Q/A
### Задача 1
> Работа с модулем Vault.
>
> Запустить модуль Vault конфигураций через утилиту kubectl в установленном minikube
>
> ```
> kubectl apply -f config/vault-pod.yml
> ```
```text
pod/14.2-netology-vault created
```
> Получить значение внутреннего IP пода
>
> ```
> kubectl get pod 14.2-netology-vault -o json | jq -c '.status.podIPs'
> ```
>
> Примечание: jq - утилита для работы с JSON в командной строке
```text
[{"ip":"10.233.102.130"}]
```
> Запустить второй модуль для использования в качестве клиента
>
> ```
> kubectl run -i --tty fedora --image=fedora --restart=Never -- sh
> ```
>
> Установить дополнительные пакеты
>
> ```
> dnf -y install pip
> pip install hvac
> ```
```shell
pip list
```
```text
Package Version
------------------ ---------
certifi 2022.12.7
charset-normalizer 2.1.1
gpg 1.17.0
hvac 1.0.2
idna 3.4
libcomps 0.1.18
pip 22.2.2
pyhcl 0.4.4
requests 2.28.1
rpm 4.18.0
setuptools 62.6.0
urllib3 1.26.13
```
> Запустить интерпретатор Python и выполнить следующий код, предварительно
> поменяв IP и токен
>
> ```
> import hvac
> client = hvac.Client(
> url='http://10.10.133.71:8200',
> token='aiphohTaa0eeHei'
> )
> client.is_authenticated()
>
> # Пишем секрет
> client.secrets.kv.v2.create_or_update_secret(
> path='hvac',
> secret=dict(netology='Big secret!!!'),
> )
>
> # Читаем секрет
> client.secrets.kv.v2.read_secret_version(
> path='hvac',
> )
> ```
Предварительно необходимо создать файл `vault.py`, поместить скрипт в него и запустить:
```shell
python3 vault.py
```
Следующим шагом необходимо проверить, что секрет успешно записался в `vault`. Для этого будет выполнено два шага:
* Выполнить `port-forward` до пода `vault`:
```shell
kubectl port-forward pods/14.2-netology-vault 8200:8200
```
* Не выключая консоль зайти в web-версию `vault` по адресу `http://localhost:8200`, авторизоваться
и просмотреть все секреты в хранилище `secrets`:
![vault_ui_secret.png](./img/vault_ui_secret.png)