Найти тему
ИТ разнообразно

Автоматизируем развёртывание контейнеров и подов с помощью Podman и Ansible. Часть 5.

Оглавление

Podman и Ansible вместе даже лучше для обеспечения автоматизации и оркестрации жизненных циклов контейнеров и подов

Автоматизируем Podman при помощи Ansible (продолжение)

Наконец, проверьте свои плейбуки, создав контейнеры и подтвердив доступ к приложениям. Используем параметр -K с командой ansible-playbook для ввода пароля sudo, так как этот плейбук изменяет настройку ядра, чтобы позволить контейнеру Nginx привязываться к привилегированному порту 80:

$ ansible-playbook create_httpd_nginx.yaml -K
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'
PLAY [Playbook to create two httpd containers with one nginx container as a reverse proxy]
**********************************************************
TASK [Gathering Facts]
********************************************************
ok: [localhost]
TASK [Create the syscom container]
********************************************
changed: [localhost]
TASK [Create the sysorg container]
********************************************
changed: [localhost]
TASK [Allow the nginx container to run in the 80 port of the host]
************
changed: [localhost]
TASK [Create the nginx container]
*********************************************
changed: [localhost]
TASK [Disable the use of lower ports for containers again]
********************
changed: [localhost]
PLAY RECAP
********************************************************************
localhost : ok=6 changed=5 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
$ podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2038ad4e5c9e docker.io/library/httpd:latest httpd-foreground 7 seconds ago Up 6 seconds 0.0.0.0:8080->80/tcp syscom
5a01d9bdc5ae docker.io/library/httpd:latest httpd-foreground 5 seconds ago Up 4 seconds 0.0.0.0:8081->80/tcp sysorg
3c816ebb9bcb docker.io/library/nginx:latest nginx -g daemon o... 3 seconds ago Up 2 seconds 0.0.0.0:80->80/tcp nginx
$ curl http://sysadmin.com
<html>
<header>
<title>SysAdmin.com</title>
</header>
<body>
<p>This is the SysAdmin website hosted on the .com domain</p>
</body>
</html>
$ curl http://sysadmin.org
<html>
<header>
<title>SysAdmin.org</title>
</header>
<body>
<p>This is the SysAdmin website hosted on the .org domain</p>
</body>
</html>

Прекрасно и готово. И чтобы удалить всё это, запускаем другой плейбук:

$ ansible-playbook stop-remove_httpd_nginx.yaml
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'
PLAY [Playbook to create a container]
*****************************************
TASK [Gathering Facts]
********************************************************
ok: [localhost]
TASK [Stop and remove all containers]
*****************************************
changed: [localhost] => (item=syscom)
changed: [localhost] => (item=sysorg)
changed: [localhost] => (item=nginx)
PLAY RECAP ********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
$ podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ curl http://sysadmin.com
curl: (7) Failed to connect to sysadmin.com port 80 after 0 ms: Connection refused
$ curl http://sysadmin.org
curl: (7) Failed to connect to sysadmin.org port 80 after 0 ms: Connection refused

И точно так же вы создали и удалили ту же среду, что и в моей предыдущей статье, но быстрее, используя мощь Ansible для Podman. Изучите другие модули, доступные в коллекции container.podman, чтобы получить ещё больше преимуществ, которые она предоставляет.

Заключение

Podman и Ansible — очень хорошие инструменты по отдельности для управления контейнерами и автоматизации всех вещей соответственно. Вместе они ещё лучше подходят для обеспечения автоматизации и оркестрации жизненных циклов контейнеров и подов в более простых сценариях.

Перевод. Автор оригинала: Alexon Oliveira (Sudoer, Red Hat).