ссылка: модуль 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
По сути, у меня есть 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 }}"
Определение синхронизации 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
Но при запуске второй задачи 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
Мобильная версия