GNU/Linux >> Linux Esercitazione >  >> Linux

Come installare una raccolta Ansible su un nodo di controllo Ansible disconnesso

In questo tutorial, mostro come e dove installare Ansible Content Collections in un nodo di controllo Ansible che non ha accesso a Internet. Il processo è semplice e diretto, ma alcuni utenti sono confusi con il percorso di installazione e la configurazione.

Perché niente Internet?

Alcune organizzazioni non consentono ai server di connettersi direttamente a Internet. E a volte non consentono la connettività Internet anche tramite server proxy. Questa è una norma standard e potresti già averla sperimentata se lavori con server critici. E l'installazione di alcuni strumenti o file richiesti non è un compito facile senza l'accesso a Internet.

[ Ai lettori è piaciuto anche: Come posso beneficiare di un abbonamento a Red Hat in un momento di crisi e oltre ]

Installazione di Ansible Collection da Internet

Puoi installare direttamente Ansible Collections da Ansible Galaxy usando ansible-galaxy comando. È un'attività semplice in cui è sufficiente specificare il nome della raccolta e il percorso di installazione. La galassia-ansible comando si occuperà della creazione delle sottodirectory e delle attività di download della raccolta.

$ installazione della raccolta ansible-galaxy community.kubernetes -p ./collections 

Fare riferimento alla documentazione di Ansible o a questa guida pratica per maggiori dettagli.

Installazione di Ansible Collection senza Internet

Per impostazione predefinita, ansible-galaxy proverà a installare Ansible Collections da galaxy.ansible.com o dai server che hai configurato in GALAXY_SERVER configurazione (ad es. Automation Hub). Poiché questo scenario è un nodo di controllo Ansible senza accesso a Internet, non ne parlerò. Tuttavia, puoi comunque scaricare il contenuto della raccolta da Internet utilizzando una workstation o un laptop con accesso a Internet e quindi trasferire il contenuto al nodo di controllo Ansible disconnesso.

Trova la raccolta e scaricala per l'utilizzo offline

Per questa dimostrazione, installa Kubernetes Raccolta dalla community (community.kubernetes ).

Dalla tua workstation o laptop (con accesso a Internet), vai su galaxy.ansible.com e trova il community.kubernetes Collezione.

Fai clic su Scarica Tarball collega e scarica la Collezione come archivio per l'utilizzo offline.

Trasferisci il file di archivio sulla macchina di destinazione, che è il tuo nodo di controllo Ansible:

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

(Oppure puoi usare qualsiasi altro metodo come WinSCP, SFTP, ecc.)

Distribuire Ansible Collection sul nodo di controllo

Ora devi preparare il luogo in cui conservare le raccolte Ansible. Puoi tenerlo nelle directory di sistema (/usr/share/ansible/collections ) o la directory home dell'utente (~/.ansible/collections ), ma si consiglia di mantenere le raccolte basate su progetti per una migliore gestione).

In questo caso, crea una directory denominata raccolte nella directory del progetto. In questo esempio, l'utente locale è denominato devops.

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

Metodo 1:usa il comando ansible-galaxy con Ansible Collection scaricato

Usa la stessa ansible-galaxy comando, ma invece di installare il contenuto della raccolta da Internet, specificare il file di archivio della raccolta da utilizzare:

' community.kubernetes:1.2.0' in '/home/devops/devops/workshops/ansible-collections-demo/collections/ansible_collections/community/kubernetes'community.kubernetes (1.2.0) è stato installato correttamente

È così facile e diretto.

Metodo 2:estrarre e organizzare manualmente i contenuti di Ansible Collection

Come accennato in precedenza, se stai usando ansible-galaxy comando, Ansible si occuperà delle sottodirectory, ma qui devi creare tutto manualmente. Questo è necessario solo se la ansible-galaxy il comando non funziona con l'archivio offline.

Crea sottodirectory nel seguente formato:

[DIR_PROGETTO]/[PERCORSO_COLLEZIONE]/ansible_collections/[AUTORE]/[NOME_COLLEZIONE] 

Dove:

  • [DIR_PROGETTO] - la directory del tuo progetto (/home/devops/ansible-collections-demo )
  • [COLLECTION_PATH] - che è raccolte in questo caso.
  • ansible_collections:il percorso che Ansible si aspetta per le raccolte
  • [AUTORE] - la persona o il venditore che mantiene/fornisce la Collezione (ad es. comunità )
  • [COLLECTION_NAME]:il nome della raccolta (ad es. kubernetes )

Crea le directory come mostrato:

$ mkdir -p collections/ansible_collections/community/kubernetes 

Estrai il contenuto della raccolta e copialo nelle raccolte directory:

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

Verifica il contenuto:

$ 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 26 feb 18:13 CHANGELOG.rstdrwxrwxr-x  3 devops devops  4096 26 feb 18:13 changelogs-rw-rw-r--  1 devops devops   107 feb 26 18:13 codecov.yml-rw-rw-r-- 1 devops devops  3278 26 feb 18:13 CONTRIBUTING.md-rw-rw-r--  1 devops devops   857 26 feb 18:13 galaxy.yml-rw-rw-r--  1 devops devops 35148 feb 26 18:13 LICENZA -rw-rw-r--  1 devops devops  1112 Feb 26 18:13 Makefiledrwxrwxr-x  2 devops devops  4096 Feb 26 18:13 metadrwxrwxr-x  3 devops devops  4096 Feb 26 18:13 moleculedrwxrwxr-x 10 devops devops  4096 Feb 2 18:13 plugins-rw-rw-r--  1 devops devops  8542 26 feb 18:13 README.md-rw-rw-r--  1 devops devops    35 feb 26 18:13 requisiti.txt-rw-rw-r --  1 devops devops    50 26 feb 18:13 setup.cfg-rw-rw-r-- 1 devops devops    20 feb 26 18:13 test-requirements.txtdrwxrwxr-x  5 devops devops  4096 feb 26 18:13 testsdrwx rwxr-x  2 devops devops  4096 26 febbraio 18:13 utilità 

Configura Ansible per ritirare la raccolta

Ansible cercherà le raccolte in ~/.ansible/collections:/usr/share/ansible/collections , che è il valore predefinito per COLLECTIONS_PATHS .

Devi comunicare ad Ansible la posizione del contenuto della raccolta. Per farlo, configura ansible.cfg con i COLLECTIONS_PATHS iscrizione. Non è necessario modificare nulla nel file predefinito /etc/ansible/ansible.cfg . Crea invece il tuo ansible.cfg nella directory del progetto e mantieni tutte le configurazioni per il tuo progetto. Ecco un esempio:

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

Controlla il contenuto della directory dopo:

$ ls -ltotal 16-rw-rw-r-- 1 devops devops  309 22 dic 22:40 ansible.cfgdrwxrwxr-x 3 devops devops 4096 26 feb 18:09 collections-rw-rw-r- - 1 devops devops  369 26 febbraio 18:36 k8s-cluster-info.yaml 

Verifica la raccolta Ansible implementata

Verifica la collezione con ansible-galaxy comando:

$ elenco di raccolte ansible-galaxy # /home/devops/ansible-collections-demo/collections/ansible_collectionsCollection           Versione------ -- -----community.kubernetes 1.2.0  

Usa subito la tua raccolta nel tuo playbook.

Puoi facilmente raccogliere l'accesso ai contenuti utilizzando ansible-doc comando e visualizzerà la documentazione se Collection e moduli sono installati correttamente.

$ ansible-doc community.kubernetes.k8s_info 

Esamina il semplice playbook chiamato k8s-cluster-info.yaml di seguito, che mostra le informazioni sul pod di un cluster Kubernetes:

---- nome:Ansible k8s Test host:localhost attività:        - nome:Ottieni un elenco di tutti i pod da qualsiasi spazio dei nomi      community.kubernetes.k8s_info:        tipo:Pod      register:pod_list        - nome:Visualizza cluster k8s dettagli      debug:        msg:"{{ pod_list }}" 

Nota :Devi installare le altre dipendenze Python richieste (ad esempio, openshift , PyYAML , ecc.) per il funzionamento dei moduli. Questo argomento non rientra nell'ambito di questo articolo ma puoi fare riferimento alle procedure standard (o leggere come installare i moduli Python offline).

[ Manuale dell'utente dell'API:7 best practices per programmi API efficaci ] 

Concludi

Con l'introduzione di Red Hat Ansible Automation Platform, puoi mantenere i contenuti organizzati all'interno della tua rete. Tuttavia, questo deve essere configurato manualmente come fa Red Hat Ansible Tower. Leggi di più su Automation Hub per i dettagli.


Linux
  1. Come installare Node.js su Fedora 35 / Fedora 34

  2. Come installare Ansible su AlmaLinux 8

  3. Come installare Ansible su Debian 11

  4. Come installare Ansible su CentOS 8

  5. Come installare Ansible su Oracle Linux 8

Come installare Node.js su Debian 10

Come installare Node.js su Debian 11

Come installare Node.js su CentOS 7

Come installare Node.js su Ubuntu 14.04

Come installare Ansible Server su Ubuntu 18.04

Come installare Ansible su Linux Mint 20