mirror of
https://github.com/Dannecron/netology-devops.git
synced 2025-12-25 15:22:37 +03:00
homework 8.6: complete other tasks
move module files to separate dir
This commit is contained in:
5
src/homework/08-ansible/8.6/playbook/my_playbook.yml
Normal file
5
src/homework/08-ansible/8.6/playbook/my_playbook.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
- name: my playbook
|
||||
hosts: localhost
|
||||
roles:
|
||||
- my_own_namespace.yandex_cloud_cvl.my_own_role
|
||||
@@ -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
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user