homework 8.6: complete other tasks

move module files to separate dir
This commit is contained in:
2022-08-15 10:23:42 +07:00
parent 4e51fca06b
commit 6d127803da
5 changed files with 69 additions and 12 deletions

View File

@@ -0,0 +1,5 @@
---
- name: my playbook
hosts: localhost
roles:
- my_own_namespace.yandex_cloud_cvl.my_own_role

View File

@@ -16,6 +16,8 @@
> 8. Если все шаги прошли успешно - выйти из виртуального окружения `deactivate`
> 9. Ваше окружение настроено, для того чтобы запустить его, нужно находиться в директории `ansible` и выполнить конструкцию `./venv/bin/activate && ./hacking/env-setup`
Репозиторий: [Dannecron/netology-devops-ansible-yandex-cloud-cvl](https://github.com/Dannecron/netology-devops-ansible-yandex-cloud-cvl).
Дополнительные действия:
1. В ubuntu-дистрибутивах модуль `venv` не установлен по умолчанию, поэтому нужно его установить самостоятельно
@@ -53,7 +55,7 @@
> 3. Заполните файл в соответствии с требованиями ansible так, чтобы он выполнял основную задачу: module должен создавать текстовый файл на удалённом хосте по пути,
> определённом в параметре `path`, с содержимым, определённым в параметре `content`.
Код модуля доступен в файле [my_own_module.py](./my_own_module.py). Внутри репозитория `ansible` его
Код модуля доступен в файле [my_own_module.py](./module/my_own_module.py). Внутри репозитория `ansible` его
необходимо положить по пути `lib/ansible/modules`.
> 4. Проверьте module на исполняемость локально
@@ -103,7 +105,7 @@ python3 -m ansible.modules.my_own_module payload.json
> 6. Проверьте через playbook на идемпотентность
> 7. Выйдите из виртуального окружения
Playbook будет выглядеть следующим образом: [test_module.yml](./test_module.yml).
Playbook будет выглядеть следующим образом: [test_module.yml](./module/test_module.yml).
Данный файл нужно положить в корень репозитория `ansible` и выполнить следующую команду:
```shell
@@ -147,38 +149,88 @@ ok: [localhost]
PLAY RECAP ***************************************************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
> 8. Инициализируйте новую collection: `ansible-galaxy collection init my_own_namespace.yandex_cloud_elk`
// todo
Выход из виртуального окружения:
```shell
deactivate
```
> 8. Инициализируйте новую collection: `ansible-galaxy collection init my_own_namespace.yandex_cloud_cvl`.
```shell
ansible-galaxy collection init my_own_namespace.yandex_cloud_cvl
```
```text
- Collection my_own_namespace.yandex_cloud_cvl was created successfully
```
Новая коллекция сразу перенесена в репозиторий [netology-devops-ansible-yandex-cloud-cvl](https://github.com/Dannecron/netology-devops-ansible-yandex-cloud-cvl).
> 9. В данную collection перенесите свой module в соответствующую директорию.
// todo
Модуль размещён в директории `modules` в репозитории [netology-devops-ansible-yandex-cloud-cvl](https://github.com/Dannecron/netology-devops-ansible-yandex-cloud-cvl).
> 10. Single task playbook преобразуйте в single task role и перенесите в collection.
> У role должны быть default всех параметров module
// todo
Роль размещена в директории `my_own_role` в репозитории [netology-devops-ansible-yandex-cloud-cvl](https://github.com/Dannecron/netology-devops-ansible-yandex-cloud-cvl).
> 11. Создайте playbook для использования этой role
// todo
Playbook для работы с ролью расположен в файле [playbook/my_playbook.yml](./playbook/my_playbook.yml).
> 12. Заполните всю документацию по collection, выложите в свой репозиторий, поставьте тег `1.0.0` на этот коммит.
// todo
[netology-devops-ansible-yandex-cloud-cvl:1.0.0](https://github.com/Dannecron/netology-devops-ansible-yandex-cloud-cvl/releases/tag/1.0.0).
> 13. Создайте .tar.gz этой collection: `ansible-galaxy collection build` в корневой директории collection.
// todo
```shell
ansible-galaxy collection build
```
```text
Created collection for my_own_namespace.yandex_cloud_cvl at netology-devops-ansible-yandex-cloud-cvl/my_own_namespace-yandex_cloud_cvl-1.0.0.tar.gz
```
> 14. Создайте ещё одну директорию любого наименования, перенесите туда single task playbook и архив c collection.
// todo
Директория с playbook, который создан на шаге 11.
> 15. Установите collection из локального архива: `ansible-galaxy collection install <archivename>.tar.gz`
// todo
```shell
ansible-galaxy collection install my_own_namespace-yandex_cloud_cvl-1.0.0.tar.gz
```
```text
Starting galaxy collection install process
Process install dependency map
Starting collection install process
Installing 'my_own_namespace.yandex_cloud_cvl:1.0.0' to '~/.ansible/collections/ansible_collections/my_own_namespace/yandex_cloud_cvl'
my_own_namespace.yandex_cloud_cvl:1.0.0 was installed successfully
```
> 16. Запустите playbook, убедитесь, что он работает.
// todo
```shell
ansible-playbook my_playbook.yml
```
```text
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does
not match 'all'
PLAY [my playbook] *****************************************************************************************
TASK [Gathering Facts] *************************************************************************************
ok: [localhost]
TASK [my_own_namespace.yandex_cloud_cvl.my_own_role : create file] *****************************************
changed: [localhost]
PLAY RECAP *************************************************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```