ansible_bootstrap

Ansible Galaxy Ansible Galaxy Downloads

Ansible Роль: ansible-bootstrap


Для эффективной работы ansible, на целевой машине должен быть установлен интерпретатор python. Машины CoreOS и Flatcar Linux минималистичны и не содержат ни одной версии python. Кроме того, при использовании jumpbox'ов, которые управляются кем-то другим, у вас ограниченный доступ к установке программного обеспечения, и вы можете установить его только в одну структуру каталога.

Чтобы обойти это ограничение, устанавливается портативная версия pypy, легковесный интерпретатор python. Роль ansible-bootstrap установит pypy, включая pip, в домашний каталог пользователя, создаст символьные ссылки для удобного использования нового стека python и настроит пути. Затем вы сможете обновить наш файл инвентаря, чтобы использовать установленный интерпретатор python на ваших узлах Container Linux с помощью ansible.

Кроме того, это становится чрезвычайно полезно для настройки содержимого структуры контроллера ansible в этой модели. В связи с этим были добавлены дополнительные функции как для настройки pypy для управления ansible, так и для ansible в качестве контроллера с включенным проксированием ssh через bastion host.

Переменные Роли:


Включить PIP

Установка этого значения управляет установкой PIP и необходимых инструментов в домашний каталог пользователя. Значение по умолчанию - 'True'.

enable_pip: True

Включить Ansible

Установка этого значения контролирует установку ansible с использованием нового pypy окружения. Также в ~/bin создаются символьные ссылки для приложений и добавляются в путь пользователя в .bashrc. Значение по умолчанию - 'False'.

enable_ansible: True

Включить Папки Ansible

Установка этого значения создает инфраструктуру папок и конфигурационные файлы для контроллера ansible, развернутого в домашнем каталоге, как и остальное программное обеспечение. Значение по умолчанию - 'False'.

enable_ansible_folders: True

Включить Общие Папки Ролей Ansible

Установка этого значения создает инфраструктуру папок для общей роли в ~/ansible/roles/common с использованием ansible-galaxy. Значение по умолчанию - 'False'.

enable_ansible_common_role: True

Включить Bastion (для Проксирования SSH Ansible)

Установка этого значения создает конфигурацию ansible для использования ansible с проксированием ssh через bastion host в файле ansible/ssh.cfg. Значение по умолчанию - 'False'.

enable_bastion: True
bastion_hostname: bastion.contoso.ltd # Полное доменное имя Bastion Host
bastion_user: bwayne # Пользователь Bastion Host
bastion_ip: 172.168.1.10 # IP-адрес Bastion Host
bastion_ansible_host: 192.168.1.* # Хосты на другой стороне Bastion

Установка


Используйте ansible-galaxy для установки последнего модуля.

ansible-galaxy install ppouliot.ansible-bootstrap

Настройте ваш проект

В отличие от типичной роли, вам нужно настроить Ansible для использования альтернативного интерпретатора python для контейнерных linux-хостов. Это можно сделать, добавив группу container-linux в ваш файл инвентаря и установив переменные группы для использования нового интерпретатора python. Таким образом, вы сможете управлять hостами CoreOS и не CoreOS с помощью ansible. Просто поместите каждый хост с CoreOS в группу инвентаря container-linux, и он автоматически использует указанный интерпретатор python.

[container-linux]
host-01
host-02

[container-linux:vars]
enable_pip=True
ansible_ssh_user=core
ansible_python_interpreter=/home/core/bin/python
ansible_connection=ssh
ansible_ssh_private_key_file=/etc/ansible/keys/id_rsa

enable_ansible=True
enable_ansible_folders=True
enable_bastion=True

bastion_hostname=bastion.contoso.ltd
bastion_user=bwayne
bastion_ip=172.168.1.10
bastion_ansible_host=192.168.1.*

Это настроит ansible использовать интерпретатор python по адресу /home/core/bin/python, который будет создан ролью ansible-bootstrap.

Bootstrap Playbook


Теперь вы можете просто добавить следующее в ваш playbook файл и включить его в ваш site.yml, чтобы он выполнялся на всех хостах в группе container-linux.

- hosts: container-linux
  gather_facts: False
  remote_user: core
  roles:
    - ppouliot.ansible-bootstrap

Убедитесь, что gather_facts установлен в false, в противном случае ansible попытается сначала собрать системные сведения с помощью python, который еще не установлен!

Участники


Авторские права и Лицензия


Авторские права (C) 2018 Peter J. Pouliot

С Peter Pouliot можно связаться по адресу: peter@pouliot.net

Лицензировано под лицензией Apache, версия 2.0 ("Лицензия"); вы не можете использовать этот файл, за исключением случаев, предусмотренных Лицензией. Вы можете получить копию Лицензии по адресу

http://www.apache.org/licenses/LICENSE-2.0

Если иное не требует закон или не согласовано письменно, программное обеспечение, распространяемое в соответствии с Лицензией, распространяется на условиях "КАК ЕСТЬ", БЕЗ ГАРАНТИЙ И УСЛОВИЙ ЛЮБОГО ВИДА, явных или подразумевающихся. Смотрите Лицензию для конкретных прав и ограничений, регулирующих лицензирование.

О проекте

A PYPY (and pip) deployment for bootstrapping Ansible resources.

Установить
ansible-galaxy install ppouliot/ansible-role-ansible-bootstrap
Лицензия
apache-2.0
Загрузки
228
Владелец