Использование плагина динамического инвентаризации Kubernetes
Плагин динамического инвентаризации Kubernetes
Лучший способ взаимодействия с вашими Pod — использование плагина динамического инвентаризации Kubernetes, который динамически запрашивает API Kubernetes с помощью kubectl команды, доступной на узле контроллера, и сообщает Ansible, какие Pod могут быть управляемы.
Требования
Для использования плагинов динамического инвентаризации Kubernetes необходимо установить Kubernetes Python client, kubectl и OpenShift Python client на вашем контрольном узле (хосте, на котором работает Ansible).
$ pip install kubernetes openshift
Обратитесь к официальной документации Kubernetes для установки kubectl на заданных операционных системах.
Для использования этого плагина динамического инвентаризации Kubernetes необходимо его сначала включить, указав следующее в файле ansible.cfg:
[inventory] enable_plugins = community.kubernetes.k8s
Затем создайте файл, который заканчивается на .k8s.yml или .k8s.yaml в вашей рабочей директории.
Плагин инвентаризации community.kubernetes.k8s принимает ту же информацию об аутентификации, что и другие модули Kubernetes.
Вот пример допустимого файла инвентаризации:
plugin: community.kubernetes.k8s
Выполнение ansible-inventory --list -i <filename>.k8s.yml создаст список Pod, готовых к настройке с помощью Ansible.
Вы также можете указать пространство имён для сбора информации о конкретных Pod из заданного пространства имён. Например, для сбора информации о Pod в пространстве имён test вы укажете параметр namespaces:
plugin: community.kubernetes.k8s
connections:
- namespaces:
- test
Использование зашифрованных файлов конфигурации
Поскольку файл конфигурации инвентаризации содержит конфиденциальную информацию, связанную с Kubernetes, в открытом тексте, что представляет собой угрозу безопасности, вы можете зашифровать весь файл конфигурации инвентаризации.
Вы можете зашифровать допустимый файл конфигурации инвентаризации следующим образом:
$ ansible-vault encrypt <filename>.k8s.yml New Vault password: Confirm New Vault password: Encryption successful $ echo "MySuperSecretPassw0rd!" > /path/to/vault_password_file
И вы можете использовать этот зашифрованный файл конфигурации инвентаризации с помощью:
$ ansible-inventory -i <filename>.k8s.yml --list --vault-password-file=/path/to/vault_password_file
См. также
- Kubernetes Python client
-
Страница GitHub Kubernetes Python client
- Kubernetes Python client - Трекер ошибок
-
Трекер проблем Kubernetes Python client
- OpenShift Python client
-
Страница GitHub OpenShift Dynamic API client
- OpenShift Python client - Трекер ошибок
-
Трекер проблем OpenShift Dynamic API client
- Установка Kubectl
-
Руководство по установке Kubectl
- Работа с playbook
-
Введение в playbook
- Использование зашифрованных переменных и файлов
-
Использование Vault в playbook
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/scenario_guides/kubernetes_scenarios/k8s_inventory.html