Podman#
Podman – это инструмент с открытым исходным, используемый для создания и запуска контейнеризованных приложений. В отличие от Docker, по умолчанию Podman запускает контейнеры в непривилегированном режиме.
Назначение#
В Astra Automation утилиты, входящие в состав ПО Podman, используются для следующих задач:
запуск заданий Ansible в среде исполнения;
использование конструктора кода для управления инфраструктурой;
сборка собственного образа среды исполнения Astra Automation Controller.
Установка#
Важно
Пакеты Podman доступны в репозиториях Astra Linux Special Edition начиная с оперативного обновления 1.7.2 (БЮЛЛЕТЕНЬ № 2022-0819SE17). Инструкции по обновлению ОС приведены в разделе справочного центра Оперативные обновления для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), РУСБ.10015-10, РУСБ.10015-37.
Для установки пакетов Podman выполните следующие действия:
Получите номер установленного оперативного обновления ОС:
cat /etc/astra_version
Команда выводит в терминал строку вида:
Добавьте в файл
/etc/apt/sources.list
ссылку на расширенный (extended) репозиторий Astra Linux Special Edition 1.7:deb https://download.astralinux.ru/astra/frozen/1.7_x86-64/<version>/repository-extended/ 1.7_x86-64 main contrib non-free
где <version> – версия установленного оперативного обновления Astra Linux Special Edition. Для примера выше указанная строка имеет вид:
deb https://download.astralinux.ru/astra/frozen/1.7_x86-64/1.7.5/repository-extended/ 1.7_x86-64 main contrib non-free
Обновите список доступных пакетов:
sudo apt update
Установите пакеты Podman:
sudo apt install podman --yes
Проверка корректности установки#
Для проверки корректности установки Podman выполните следующие действия:
В любом каталоге создайте два файла:
playbook.yml
– простейший playbook Ansible:--- - name: Validate Podman setup hosts: all tasks: - name: Print Execution Environment OS info ansible.builtin.debug: msg: - OS version is {{ ansible_distribution_version }} - Python version is {{ ansible_python_version }}
inventory
– инвентарь Ansible:[all] localhost ansible_connection=local ansible_python_interpreter=/usr/bin/python3
Запустите выполнение playbook в контейнере Podman:
podman run \ --rm \ --volume "$(pwd):/app" \ registry.astralinux.ru/aa/aa-base-ee:latest \ bash -c 'ansible-playbook -i inventory playbook.yml'
где:
--rm
– автоматическое удаление контейнера после выполнения команды.--volume
,-v
– монтирование объекта файловой системы управляющего узла в файловую систему контейнера. В данном случае каталог с файламиinventory
иplaybook.yml
монтируется в каталог/app
. Путь к каталогу определяется с помощью командыpwd
.registry.astralinux.ru/aa/aa-base-ee:latest
– ссылка на образ.bash -c 'ansible-playbook -i inventory.yml playbook.yml'
– команда, которая должна быть выполнена в контейнере. В данном случае – запуск playbook с указанным инвентарем.
Если Podman настроен корректно, в терминал выводятся строки следующего вида: