ppouliot.ansible_bootstrap

Ansible Galaxy Ansible Galaxy Downloads

Rola Ansible: ansible-bootstrap


Aby skutecznie korzystać z Ansible, maszyna docelowa musi mieć interpreter Pythona. Komputery CoreOS i Flatcar Linux są minimalistyczne i nie mają zainstalowanej wersji Pythona. Dodatkowo, korzystając z jumpboxów zarządzanych przez innych, masz ograniczony dostęp do instalacji oprogramowania i możesz być w stanie instalować tylko w jednym katalogu.

Aby obejść te ograniczenia, zainstalowana zostanie przenośna wersja pypy, lekki interpreter Pythona. Rola ansible-bootstrap zainstaluje pypy, w tym pip, w katalogu domowym użytkownika, utworzy symlinki dla łatwego korzystania z nowo zainstalowanego zestawu Pythona i dostosuje ścieżki. Następnie możesz zaktualizować nasz plik inwentarza, aby używał zainstalowanego interpretera Pythona na węzłach Container Linux za pomocą Ansible.

Dzięki temu staje się również bardzo przydatne, aby zbudować zawartą strukturę kontrolera Ansible w tym modelu. W związku z tym dodano dodatkowe funkcje dotyczące rozruchu pypy do kontroli Ansible oraz Ansible jako kontrolera z aktywowanym proxy SSH bastionu.

Zmienne Roli:


Włącz PIP

Ustawienie tej wartości kontroluje instalację PIP i wymaganych narzędzi w katalogu domowym użytkownika. Domyślna wartość to 'True'.

enable_pip: True

Włącz Ansible

Ustawienie tej wartości kontroluje instalację Ansible za pomocą nowo wdrożonego środowiska pypy. Dodatkowo utworzone zostaną symlinki w ~/bin dla aplikacji i dodane do zmiennej PATH użytkownika w .bashrc. Domyślna wartość to 'False'.

enable_ansible: True

Włącz foldery Ansible

Ustawienie tej wartości tworzy infrastrukturę folderów i pliki konfiguracyjne dla kontrolera Ansible wdrożonego w katalogu domowym, podobnie jak pozostałe narzędzia. Domyślna wartość to 'False'.

enable_ansible_folders: True

Włącz foldery wspólnych ról Ansible

Ustawienie tej wartości tworzy infrastrukturę folderów dla wspólnej roli w ~/ansible/roles/common przy użyciu ansible-galaxy. Domyślna wartość to 'False'.

enable_ansible_common_role: True

Włącz Bastion (dla proxy SSH Ansible)

Ustawienie tej wartości tworzy konfigurację Ansible do korzystania z proxy SSH przez bastion w pliku ansible/ssh.cfg. Domyślna wartość to 'False'.

enable_bastion: True
bastion_hostname: bastion.contoso.ltd # FQDN hosta bastionu
bastion_user: bwayne # Użytkownik hosta bastionu
bastion_ip: 172.168.1.10 # Adres IP hosta bastionu
bastion_ansible_host: 192.168.1.* # Hosty po drugiej stronie bastionu

Instalacja


Użyj ansible-galaxy, aby zainstalować najnowszy moduł.

ansible-galaxy install ppouliot.ansible-bootstrap

Konfiguracja projektu

W przeciwieństwie do typowej roli, musisz skonfigurować Ansible, aby używał alternatywnego interpretera Pythona dla hostów Container Linux. Można to zrobić, dodając grupę container-linux do swojego pliku inwentarza i ustawiając zmienne grupy, aby korzystały z nowego interpretera Pythona. W ten sposób możesz używać Ansible do zarządzania hostami CoreOS i nie-CoreOS. Po prostu umieść wszystkie hosty z CoreOS w grupie inwentarza container-linux, a automatycznie będą używać określonego interpretera Pythona.

[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.*

To skonfiguruje Ansible, aby używał interpretera Pythona w /home/core/bin/python, który zostanie utworzony przez rolę ansible-bootstrap.

Playbook Rozruchowy


Teraz możesz po prostu dodać poniższe do swojego pliku playbook i uwzględnić go w swoim site.yml, aby działał na wszystkich hostach w grupie container-linux.

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

Upewnij się, że gather_facts jest ustawione na false, w przeciwnym razie Ansible najpierw spróbuje zebrać fakty systemowe za pomocą Pythona, który jeszcze nie jest zainstalowany!

Współpracownicy


Prawa autorskie i licencja


Copyright (C) 2018 Peter J. Pouliot

Można skontaktować się z Peterem Pouliotem pod adresem: peter@pouliot.net

Licencjonowane na mocy Licencji Apache, wersja 2.0 (“Licencja”); nie możesz używać tego pliku, chyba że w zgodności z Licencją. Możesz uzyskać kopię Licencji pod adresem:

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

Chyba że wymaga tego obowiązujące prawo lub uzgodniono to w formie pisemnej, oprogramowanie rozpowszechniane na mocy Licencji jest rozpowszechniane na zasadzie “TAK JEST”, BEZ GWARANCJI LUB WARUNKÓW JAKIEGOKOLWIEK, zarówno wyraźnych, jak i dorozumianych. Zobacz Licencję, aby uzyskać konkretne informacje dotyczące praw i ograniczeń wynikających z Licencji.

O projekcie

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

Zainstaluj
ansible-galaxy install ppouliot.ansible_bootstrap
Licencja
apache-2.0
Pobrania
239
Właściciel