GNU/Linux >> Znalost Linux >  >> Linux

Jak nainstalovat Ansible Collection na odpojený řídící uzel Ansible

V tomto tutoriálu demonstruji, jak a kam nainstalovat Ansible Content Collections v Ansible kontrolním uzlu, který nemá přístup k internetu. Proces je jednoduchý a přímočarý, ale někteří uživatelé jsou zmateni místem instalace a konfigurací.

Proč žádný internet?

Některé organizace neumožňují serverům přímé připojení k internetu. A někdy neumožňují připojení k internetu ani přes proxy servery. Toto je standardní zásada a možná jste se s tím již setkali, pokud pracujete s kritickými servery. A instalace některých nástrojů nebo požadovaných souborů není snadný úkol bez přístupu k internetu.

[ Čtenářům se také líbilo: Jak těžím z předplatného Red Hatu v době krize i mimo ni ]

Instalace Ansible Collections z internetu

Kolekce Ansible Collections z Ansible Galaxy můžete nainstalovat přímo pomocí ansible-galaxy příkaz. Je to jednoduchý úkol, kde stačí zadat název kolekce a instalační cestu. ansible-galaxy příkaz se postará o vytvoření podadresáře a úlohy stahování kolekce.

$ ansible-galaxy collection install community.kubernetes -p ./collections

Další podrobnosti naleznete v dokumentaci Ansible nebo v tomto návodu.

Instalace Ansible Collections bez internetu

Ve výchozím nastavení ansible-galaxy se pokusí nainstalovat Ansible Collections z galaxy.ansible.com nebo serverů, které jste nakonfigurovali pod GALAXY_SERVER konfigurace (např. Automation Hub). Vzhledem k tomu, že tento scénář je ovládacím uzlem Ansible bez přístupu k internetu, nebudu o tom diskutovat. Stále si však můžete stáhnout obsah kolekce z internetu pomocí pracovní stanice nebo notebooku s přístupem k internetu a poté přenést obsah do odpojeného ovládacího uzlu Ansible.

Najděte sbírku a stáhněte si ji pro použití offline

Pro tuto ukázku nainstalujte Kubernetes Sbírka od komunity (community.kubernetes ).

Z pracovní stanice nebo notebooku (s přístupem k internetu) přejděte na galaxy.ansible.com a vyhledejte community.kubernetes Kolekce.

Klikněte na Stáhnout Tarball odkaz a stáhněte si sbírku jako archiv pro použití offline.

Přeneste archivní soubor do cílového počítače, což je váš řídicí uzel Ansible:

$ scp ~/Downloads/community-kubernetes-1.2.0.tar.gz user@ansilbe-controlnode:~/

(Nebo můžete použít jakoukoli jinou metodu, jako je WinSCP, SFTP atd.)

Nasadit Ansible Collection na řídicí uzel

Nyní musíte připravit místo pro uložení Ansible Collections. Můžete jej uchovávat v systémových adresářích (/usr/share/ansible/collections ) nebo domovský adresář uživatele (~/.ansible/collections ), ale pro lepší správu se doporučuje ponechat sbírky založené na projektech).

V tomto případě vytvořte adresář s názvem collections v adresáři projektu. V tomto příkladu se místní uživatel jmenuje devops.

$ pwd
/home/devops/ansible-collections-demo
$ mkdir collections

Metoda 1 – Použijte příkaz ansible-galaxy se staženou Ansible Collection

Použijte stejnou ansible-galaxy ale místo instalace obsahu kolekce z internetu zadejte archivní soubor kolekce, který se má použít:

$ pwd
/home/devops
$ ansible-galaxy collection install ~/Downloads/community-kubernetes-1.2.0.tar.gz \
  -p collections/
Starting galaxy collection install process
Process install dependency map
Starting collection install process
Installing 'community.kubernetes:1.2.0' to '/home/devops/devops/workshops/ansible-collections-demo/collections/ansible_collections/community/kubernetes'
community.kubernetes (1.2.0) was installed successfully

Je to tak snadné a přímočaré.

Metoda 2 – Extrahujte a uspořádejte obsah Ansible Collection ručně

Jak již bylo zmíněno dříve, pokud používáte ansible-galaxy příkaz, Ansible se postará o podadresáře, ale zde je potřeba vše vytvořit ručně. To je potřeba pouze v případě ansible-galaxy příkaz nefunguje s offline archivem.

Vytvořte podadresáře v následujícím formátu:

[PROJECT_DIR]/[COLLECTION_PATH]/ansible_collections/[AUTHOR]/[COLLECTION_NAME]

Kde:

  • [PROJECT_DIR] – adresář vašeho projektu (/home/devops/ansible-collections-demo )
  • [COLLECTION_PATH] – což jsou collections v tomto případě.
  • ansible_collections – cesta, kterou Ansible očekává pro kolekce
  • [AUTHOR] – osoba nebo prodejce spravující/poskytující sbírku (např. komunita )
  • [COLLECTION_NAME] – název sbírky (např. kubernetes )

Vytvořte adresáře podle obrázku:

$ mkdir -p collections/ansible_collections/community/kubernetes

Extrahujte obsah sbírky a zkopírujte jej do collections adresář:

$ pwd
/home/devops/ansible-collections-demo
$ tar -xf ~/Downloads/community-kubernetes-1.2.0.tar.gz \
  -C collections/ansible_collections/community/kubernetes

Ověřte obsah:

$ ls -l collections/ansible_collections/community/kubernetes/
total 120
-rw-rw-r--  1 devops devops    36 Feb 26 18:13 bindep.txt
-rw-rw-r--  1 devops devops 15739 Feb 26 18:13 CHANGELOG.rst
drwxrwxr-x  3 devops devops  4096 Feb 26 18:13 changelogs
-rw-rw-r--  1 devops devops   107 Feb 26 18:13 codecov.yml
-rw-rw-r--  1 devops devops  3278 Feb 26 18:13 CONTRIBUTING.md
-rw-rw-r--  1 devops devops   857 Feb 26 18:13 galaxy.yml
-rw-rw-r--  1 devops devops 35148 Feb 26 18:13 LICENSE
-rw-rw-r--  1 devops devops  1112 Feb 26 18:13 Makefile
drwxrwxr-x  2 devops devops  4096 Feb 26 18:13 meta
drwxrwxr-x  3 devops devops  4096 Feb 26 18:13 molecule
drwxrwxr-x 10 devops devops  4096 Feb 26 18:13 plugins
-rw-rw-r--  1 devops devops  8542 Feb 26 18:13 README.md
-rw-rw-r--  1 devops devops    35 Feb 26 18:13 requirements.txt
-rw-rw-r--  1 devops devops    50 Feb 26 18:13 setup.cfg
-rw-rw-r--  1 devops devops    20 Feb 26 18:13 test-requirements.txt
drwxrwxr-x  5 devops devops  4096 Feb 26 18:13 tests
drwxrwxr-x  2 devops devops  4096 Feb 26 18:13 utils

Nakonfigurujte Ansible pro vyzvednutí sbírky

Ansible bude hledat sbírky v ~/.ansible/collections:/usr/share/ansible/collections , což je výchozí hodnota pro COLLECTIONS_PATHS .

Musíte říci Ansible o umístění obsahu sbírky. Chcete-li tak učinit, nakonfigurujte ansible.cfg pomocí COLLECTIONS_PATHS vstup. Ve výchozím souboru /etc/ansible/ansible.cfg nemusíte nic upravovat . Místo toho si vytvořte vlastní ansible.cfg v adresáři projektu a uchovejte všechny konfigurace pro svůj vlastní projekt. Zde je příklad:

$ pwd
/home/devops/ansible-collections-demo
$ cat ansible.cfg 
[defaults]
inventory = ./inventory 
COLLECTIONS_PATHS = ./collections

Dále zkontrolujte obsah adresáře:

$ ls -l
total 16
-rw-rw-r-- 1 devops devops  309 Dec 22 22:40 ansible.cfg
drwxrwxr-x 3 devops devops 4096 Feb 26 18:09 collections
-rw-rw-r-- 1 devops devops  369 Feb 26 18:36 k8s-cluster-info.yaml

Ověřte nasazenou kolekci Ansible

Ověřte sbírku pomocí ansible-galaxy příkaz:

$ ansible-galaxy collection list
 
# /home/devops/ansible-collections-demo/collections/ansible_collections
Collection           Version
-------------------- -------
community.kubernetes 1.2.0 

Použijte svou sbírku ve své příručce.

Přístup k obsahu můžete snadno shromažďovat pomocí ansible-doc a zobrazí dokumentaci, pokud jsou kolekce a moduly správně nainstalovány.

$ ansible-doc community.kubernetes.k8s_info

Prohlédněte si jednoduchou příručku s názvem k8s-cluster-info.yaml níže, který zobrazuje informace pod clusteru Kubernetes:

---
- name: Ansible k8s Test
  hosts: localhost
  tasks:
    
    - name: Get a list of all pods from any namespace
      community.kubernetes.k8s_info:
        kind: Pod
      register: pod_list
    
    - name: Display k8s Cluster details
      debug:
        msg: "{{ pod_list }}"

Poznámka :Musíte nainstalovat další požadované závislosti Pythonu (např. openshift , PyYAML atd.), aby moduly fungovaly. Toto téma nespadá do rozsahu tohoto článku, ale můžete se podívat na standardní postupy (nebo si přečíst, jak nainstalovat moduly Python offline).

[ Uživatelská příručka API:7 osvědčených postupů účinných programů API ] 

Sbalit

Se zavedením platformy Red Hat Ansible Automation Platform můžete udržet organizovaný obsah ve vaší síti. Toto je však třeba nastavit ručně, stejně jako Red Hat Ansible Tower. Přečtěte si více o Automation Hub pro podrobnosti.


Linux
  1. Jak nainstalovat Ansible na AlmaLinux 8

  2. Jak nainstalovat Ansible na Debian 11

  3. Jak nainstalovat Ansible na CentOS 7

  1. Jak nainstalovat Node.js na Fedora 35 / Fedora 34

  2. Jak nainstalovat Ansible na CentOS 8

  3. Jak nainstalovat Ansible na Oracle Linux 8

  1. Jak nainstalovat a nakonfigurovat Ansible na Ubuntu 20.04

  2. Jak nainstalovat Ansible na Ubuntu

  3. Jak nainstalovat NodeJs na Ubuntu 18.04