Использование модуля Community.okd.openshift_adm_groups_sync в ansibleLinux

Ответить
Anonymous
 Использование модуля Community.okd.openshift_adm_groups_sync в ansible

Сообщение Anonymous »

Для управления кластером OpenShift я хочу использовать коллекцию Ansible Community.okd, точнее модуль openshift_adm_groups_sync. тот же модуль существует и в коллекции «Openshift».
ссылка: модуль Community.okd.openshift_adm_groups_sync – синхронизация групп OpenShift с записями от внешнего поставщика.
Коллекции Ansible

Automation-Hub
Моя цель — синхронизировать группу LDAP с кластером Openshift. Группа Ldap уже существует в Openshift и работает ручная синхронизация. Когда я хочу сделать это с помощью ansible, я получаю ошибки.
Вот моя среда ansible:

Код: Выделить всё

ansible [core 2.16.3]
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.12/site-packages/ansible
ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
executable location = /bin/ansible
python version = 3.12.3 (main, Jun 19 2024, 10:06:03) [GCC 8.5.0 20210514 (Red Hat 8.5.0-22)] (/usr/bin/python3.12)
jinja version = 3.1.2
libyaml = True

Уже установленные коллекции:

Код: Выделить всё

ansible-galaxy collection list -p /usr/share/ansible/collections

# /root/.ansible/collections/ansible_collections
Collection       Version
---------------- -------
ansible.posix    1.5.4
community.okd    4.0.0
kubernetes.core  5.0.0

# /usr/share/ansible/collections/ansible_collections
Collection       Version
---------------- -------
kubernetes.core  5.0.0
redhat.openshift 4.0.0
Я также установил необходимые модули Python.
По сути, у меня есть ansible-роль, которую я вызываю из основной книги действий.
Ansible-роль :

Код: Выделить всё

cat roles/ocp-roles/tasks/ldap-sync.yaml  | grep -v "#"
---
- name: Sync a group from LDAP server
community.okd.openshift_adm_groups_sync:
sync_config: "{{ lookup('file', '/root/msaka/roles/ocp-roles/files/ldap-config.yaml') | from_yaml }}"
Файл/root/msaka/roles/ocp-roles/files/ldap-config.yaml — это стандартный файл yaml для синхронизации учетных записей LDAP. Пример можно найти здесь:
Определение синхронизации Ldap
Вот инструкция:

Код: Выделить всё

cat main.yml | grep -v "#"
---
- name: Connect to OpenShift Cluster
hosts: localhost
become: yes

tasks:
- name: Log in using kubeconfig
include_role:
name: ocp-roles
tasks_from: ocp-connect

- name: Sync LDAP groups
include_role:
name: ocp-roles
tasks_from: ldap-sync

- name: Log out cluster
include_role:
name: ocp-roles
tasks_from: ocp-logout

Первая задача подключается к кластеру и получает токен. Вторая задача предполагает применить конфигурацию в файле /root/msaka/roles/ocp-roles/files/ldap-config.yaml для синхронизации группы LDAP в поставщике удостоверений OpenShift. Третий отзовет токен и выйдет из системы.
Но при запуске второй задачи playbook возникает следующая ошибка:

An во время выполнения задачи произошло исключение. Чтобы увидеть полную
обратную трассировку, используйте -vvv. Ошибка была следующей: TypeError: не все аргументы
преобразованы во время форматирования строки, фатальная: [localhost]: FAILED! =>
{"changed": false, "module_stderr": "Traceback (последний вызов
последний):\n File
"/root/.ansible/tmp/ansible-tmp- 1721924868.9662192-3650208-263793937055620/AnsiballZ_openshift_adm_groups_sync.py",
строка 107, в \n _ansiballz_main()\n файл
"/root/.ansible/tmp/ansible-tmp-1721924868.966 2192-3650208-263793937055620/ AnsiballZ_openshift_adm_groups_sync.py",
строка 99, в _ansiballz_main\n ignore_module(zipped_mod, temp_path,
ANSIBALLZ_PARAMS)\n Файл
"/root/.ansible/tmp/ansible-tmp-1721924868.9662192- 3650208-263793937055620/AnsiballZ_openshift_adm_groups_sync.py",
строка 47, в ignore_module\n

runpy.run_module(mod_name='ansible_collections.community.okd.plugins.modules.openshift_adm_groups_sync', init_globals= dict(_module_fqn='ansible_collections.community.okd.plugins.modules.openshift_adm_groups_sync', _modlib_path=modlib_path),\n Файл "", строка 226, в run_module\n Файл "", строка 98, в _run_module_code\n
Файл "", строка 88, в _run_code\n Файл
"/tmp/ansible_community.okd.openshift_adm_groups_sync_payload_qstpd6qv/ansible_community.okd.openshift_adm_groups_sync_payload.zip/ansible_collections/community/okd/plugins/modules/openshift_adm_groups_sync.py",
строка 227 в \n файле
"/tmp/ansible_community.okd.openshift_adm_groups_sync_payload_qstpd6qv/ansible_community.okd.openshift_adm_groups_sync_payload.zip/ansible_collections/community/okd/plugins/modules/openshift_adm_groups_sync.py",
строка 223 в основном\n файле
"/tmp/ansible_community.okd.openshift_adm_groups_sync_payload_qstpd6qv/ansible_community.okd.openshift_adm_groups_sync_payload.zip/ansible_collections/community/okd/plugins/module_utils/openshift_common.py", строка 97, в файле run_module\n
"/tmp/ansible_community.okd.openshift_adm_groups_sync_payload_qstpd6qv/ansible_community.okd.openshift_adm_groups_sync_payload.zip/ansible_collections/community/okd/plugins/module_utils/openshift_groups.py", строка 507, в файлеexecute_module\n
"/tmp/ansible_community.okd.openshift_adm_groups_sync_payload_qstpd6qv/ansible_community.okd.openshift_adm_groups_sync_payload.zip/ansible_collections/community/okd/plugins/module_utils/openshift_groups.py", строка 416, в синхронизации\n Файл
" /tmp/ansible_community.okd.openshift_adm_groups_sync_payload_qstpd6qv/ansible_community.okd.openshift_adm_groups_sync_payload.zip/ansible_collections/community/okd/plugins/module_utils/openshift_ldap.py",
строка 607, в get_username_for_entry\nTypeError: не все аргументы с
конвертируется во время форматирования строки\n", "module_stdout": "", "msg":
"MODULE FAILURE\nТочную ошибку смотрите в stdout/stderr", "rc": 1

Если вы можете помочь/опубликовать рабочий пример этого модуля, было бы здорово.
Я открыт для любого другого модуля/предложения, чтобы он работал. Я также думаю использовать bash-скрипты вместо решения этих проблем. Мне тоже хотелось бы услышать ваше мнение.

Подробнее здесь: https://stackoverflow.com/questions/787 ... in-ansible
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»