satellite6_content_views
Важно: Так как я перешел на другую работу, я больше не использую Red Hat Satellite, поэтому не могу поддерживать эту роль легко (у меня нет лицензии на использование Satellite). Но не стесняйтесь подавать PR для улучшения роли или используйте свой собственный репозиторий. Надеюсь, вам это понравится!
Управление представлениями контента
Satellite6-content_views — это роль Ansible для удобного управления представлениями контента в RedHat Satellite 6.x, такие как:
- Публикация новой версии представления контента
- Продвижение версии в окружение
- Удаление старых версий
Эта роль использует только HTTP API RedHat Satellite.
Требования
Чтобы использовать эту роль, вам потребуется:
- Ansible > 2.0
- Satellite 6.x
- Авторизация доступа по HTTPS с вашего Ansible-машины к вашему Satellite
- Пользователь Satellite с правами администратора
Начало работы
Ниже приведены несколько примеров плейбуков для использования этой роли.
Эта роль предполагает наличие пользователя satellite с достаточными правами.
Публикация новой версии
Иногда может быть полезно автоматически обновить конкретные представления контента, например представление контента базовой операционной системы. Satellite может запланировать синхронизацию репозиториев, но синхронизированный контент не будет доступен клиентам до тех пор, пока администратор не опубликует новую версию представления контента, содержащую эти репозитории.
ВНИМАНИЕ: В отношении составных представлений контента это обновит внутренние составные представления до их последней версии перед публикацией.
---
- hosts: localhost
connection: local
vars:
sat_hostname: satelliteurl.example.com
sat_user: satellite_user
sat_password: satellite_password
sat_org: satellite_organization
sat_cv_name: content_view_name
roles:
- satellite6-content_views
Публикация и продвижение представления контента
Опубликуйте новую версию представления контента и продвигайте его в окружение satellite_env
.
После создания новой версии представления контента она доступна только в окружении «Библиотека».
Чтобы сделать ее доступной для других окружений, необходимо произвести продвижение версии.
---
- hosts: localhost
connection: local
vars:
sat_hostname: satelliteurl.example.com
sat_user: satellite_user
sat_password: satellite_password
sat_org: satellite_organization
sat_cv_name: content_view_name
sat_promote: yes
sat_env_name: satellite_env
roles:
- satellite6-content_views
По умолчанию продвижение будет следовать пути окружения и будет продвигать представление контента в каждое окружение, пока не достигнет указанного с sat_env_name
.
Например, если задать следующий путь окружения Library -> Dev -> Testing -> Production
, в приведенном выше примере установка sat_env_name: Production
приведет к следующему:
- Публикация новой версии в Библиотеку
- Продвижение новой версии в Dev окружение
- Продвижение новой версии в Testing окружение
- Продвижение новой версии в Production окружение
Только продвижение представления контента
Продвигайте последнюю версию представления контента в окружение satellite_env
.
---
- hosts: localhost
connection: local
vars:
sat_hostname: satelliteurl.example.com
sat_user: satellite_user
sat_password: satellite_password
sat_org: satellite_organization
sat_cv_name: content_view_name
sat_publish: no
sat_promote: yes
sat_env_name: satellite_env
roles:
- satellite6-content_views
Удаление старых представлений контента
При работе с Satellite 6 новые версии представлений контента создаются довольно часто, особенно когда тестируются модули Puppet и их необходимо сделать доступными для клиентов. Старые версии представлений контента в Satellite по умолчанию сохраняются, чтобы в будущем можно было вернуться к конкретной версии. Но хранение слишком большого количества старых версий делает интерфейс Satellite неясным, а фоновые задачи медленнее, так как им нужно анализировать больше данных.
По умолчанию сохраняются все версии представлений контента, которые были продвинуты в любое жизненное окружение, и 5 самых новых непродвиженных версий.
Количество сохраняемых версий можно отрегулировать с помощью переменной sat_keep_old_cv
.
---
- hosts: localhost
connection: local
vars:
sat_hostname: satelliteurl.example.com
sat_user: satellite_user
sat_password: satellite_password
sat_org: satellite_organization
sat_cv_name: content_view_name
sat_publish: no
sat_remove_old_cv: yes
sat_keep_old_cv: 5
roles:
- satellite6-content_views
Переменные роли
Вот список всех переменных по умолчанию для этой роли, которые также доступны в defaults/main.yml.
Имя переменной | Обязательная | По умолчанию | Выборы | Комментарии |
---|---|---|---|---|
sat_hostname |
да | Нет | N/A | Хостнейм Satellite, может быть IP или DNS |
sat_user |
да | Нет | N/A | Имя пользователя Satellite, должно иметь права администратора |
sat_password |
да | Нет | N/A | Пароль Satellite для пользователя |
sat_org |
да | Нет | N/A | Организация Satellite, в которой представление контента |
sat_cv_name |
да | Нет | N/A | Имя представления контента, которое мы хотим опубликовать |
sat_publish |
нет | да | да/нет истина/ложь |
Если установлено в «да», это опубликует новую версию |
sat_remove_old_cv |
нет | нет | да/нет истина/ложь |
Если установлено в «да», это удалит старые представления контента, используйте переменную sat_keep_old_cv , чтобы указать количество представлений контента для хранения |
sat_keep_old_cv |
нет | 5 | N/A | Количество старых представлений контента для хранения |
sat_promote |
нет | нет | да/нет истина/ложь |
Если установлено в «да», это продвигает представление контента в указанное окружение (с переменной sat_env_name ) |
sat_follow_env_path |
нет | да | да/нет истина/ложь |
Если установлено в «да», это будет продвигать во все окружения, содержащиеся в пути окружения, пока не достигнет sat_env_name (см. пример Публикация и продвижение) |
sat_env_name |
нет | Нет | N/A | Окружение, куда продвигать |
sat_wait_task_retries |
нет | 60 | N/A | Эти переменные могут быть увеличены, если продвижение Satellite длительное. Так как некоторые представления контента могут занять значительное время для публикации, вы можете настроить количество повторов и задержку. По умолчанию время ожидания задачи составляет sat_wait_task_retries x sat_wait_task_delay . По умолчанию 60 x 30 = 1800 секунд, то есть ansible будет ждать 30 минут, пока представление контента завершит публикацию/продвижение/удаление. |
sat_wait_task_delay |
нет | 30 | N/A | Задержка между двумя проверками задачи |
sat_publish_description |
нет | Автоматическая публикация из Ansible | N/A | Сообщение, которое будет отображаться в описании версии |
sat_promote_description |
нет | Автоматическое продвижение из Ansible | N/A | Сообщение, которое будет отображаться в описании продвижения |
TODO
- Публикация всех представлений контента одновременно
- Продвижение конкретной версии представления контента
- Публикация представления контента только в случае наличия новых пакетов/модулей puppet
- Оптимизация поиска задач с точными фильтрами
- Добавить множество тестов
Лицензия
GPLv3
Информация об авторе
Оливье Жербон
Role to manage content views in RedHat Satellite
ansible-galaxy install ogerbron/satellite6-content_views