GNU/Linux >> Belajar Linux >  >> Linux

Cara menginstal Koleksi Ansible pada node kontrol Ansible yang terputus

Dalam tutorial ini, saya mendemonstrasikan bagaimana dan di mana menginstal Ansible Content Collections di Ansible control node yang tidak memiliki akses internet. Prosesnya sederhana dan mudah, tetapi beberapa pengguna bingung dengan lokasi dan konfigurasi penginstalan.

Mengapa tidak ada internet?

Beberapa organisasi tidak mengizinkan server terhubung langsung ke internet. Dan terkadang mereka tidak mengizinkan konektivitas internet bahkan melalui server proxy. Ini adalah kebijakan standar dan Anda mungkin pernah mengalaminya jika bekerja dengan server penting. Dan menginstal beberapa alat atau file yang diperlukan bukanlah tugas yang mudah tanpa akses internet.

[ Pembaca juga menyukai: Bagaimana saya mendapat manfaat dari langganan Red Hat di masa krisis dan seterusnya ]

Menginstal Koleksi yang Mungkin dari internet

Anda dapat langsung menginstal Ansible Collections dari Ansible Galaxy menggunakan ansible-galaxy memerintah. Ini adalah tugas yang mudah di mana Anda hanya perlu menentukan nama Koleksi dan jalur penginstalan. ansible-galaxy perintah akan menangani pembuatan subdirektori dan tugas pengunduhan Koleksi.

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

Lihat dokumentasi Ansible atau panduan cara ini untuk detail selengkapnya.

Menginstal Koleksi yang Mungkin tanpa internet

Secara default, ansible-galaxy akan mencoba memasang Ansible Collections dari galaxy.ansible.com atau server yang telah Anda konfigurasikan di bawah GALAXY_SERVER konfigurasi (mis., Hub Otomatisasi). Karena skenario ini adalah node kontrol yang memungkinkan tanpa akses internet, saya tidak akan membahas ini. Namun, Anda masih dapat mengunduh konten Koleksi dari internet menggunakan workstation atau laptop yang memiliki akses internet, lalu mentransfer konten ke node kontrol Ansible yang terputus.

Temukan Koleksi dan unduh untuk penggunaan offline

Untuk demonstrasi ini, instal Kubernetes Koleksi dari komunitas (community.kubernetes ).

Dari workstation atau laptop Anda (dengan akses internet), buka galaxy.ansible.com dan temukan community.kubernetes Koleksi.

Klik Unduh Tarbal tautkan dan unduh Koleksi sebagai arsip untuk penggunaan offline.

Transfer file arsip ke mesin target, yang merupakan node kontrol Ansible Anda:

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

(Atau Anda dapat menggunakan metode lain seperti WinSCP, SFTP, dll.)

Menerapkan Koleksi yang Mungkin pada node kontrol

Sekarang Anda perlu menyiapkan lokasi penyimpanan Ansible Collections. Anda dapat menyimpannya di direktori sistem (/usr/share/ansible/collections ) atau direktori home pengguna (~/.ansible/collections ), tetapi direkomendasikan untuk menyimpan Koleksi berdasarkan proyek untuk pengelolaan yang lebih baik).

Untuk kasus ini, buat direktori dengan nama collections di bawah direktori proyek. Dalam contoh ini, pengguna lokal bernama devops.

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

Metode 1 - Gunakan perintah ansible-galaxy dengan Koleksi Ansible yang diunduh

Gunakan ansible-galaxy yang sama perintah, tetapi alih-alih menginstal konten Koleksi dari Internet, tentukan file arsip Koleksi yang akan digunakan:

$ 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

Semudah itu dan lugas.

Metode 2 - Ekstrak dan atur konten Ansible Collection secara manual

Seperti yang disebutkan sebelumnya, jika Anda menggunakan ansible-galaxy perintah, Ansible akan menangani subdirektori, tetapi di sini Anda perlu membuat semuanya secara manual. Ini hanya diperlukan jika ansible-galaxy perintah tidak bekerja dengan arsip offline.

Buat subdirektori dalam format berikut:

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

Dimana:

  • [PROJECT_DIR] - direktori proyek Anda (/home/devops/ansible-collections-demo )
  • [COLLECTION_PATH] - yang merupakan collections dalam hal ini.
  • ansible_collections - jalur yang diharapkan Ansible untuk Koleksi
  • [AUTHOR] - orang atau vendor yang memelihara/menyediakan Koleksi (mis., komunitas )
  • [COLLECTION_NAME] - nama Koleksi (mis., kubernetes )

Buat direktori seperti yang ditunjukkan:

$ mkdir -p collections/ansible_collections/community/kubernetes

Ekstrak konten Koleksi dan salin ke collections direktori:

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

Verifikasi konten:

$ 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

Konfigurasi Ansible untuk mengambil koleksi

Ansible akan mencari Koleksi di ~/.ansible/collections:/usr/share/ansible/collections , yang merupakan nilai default untuk COLLECTIONS_PATHS .

Anda perlu memberi tahu Ansible tentang lokasi konten Koleksi. Untuk melakukannya, konfigurasikan ansible.cfg dengan COLLECTIONS_PATHS masuk. Anda tidak perlu mengedit apapun pada file default /etc/ansible/ansible.cfg . Sebagai gantinya, buat ansible.cfg Anda sendiri di bawah direktori proyek dan simpan semua konfigurasi untuk proyek Anda sendiri. Ini contohnya:

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

Periksa konten direktori selanjutnya:

$ 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

Memverifikasi Koleksi yang Mungkin diterapkan

Verifikasi koleksi dengan ansible-galaxy perintah:

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

Gunakan Koleksi Anda di playbook Anda sekarang.

Anda dapat dengan mudah Mengumpulkan akses konten menggunakan ansible-doc perintah dan itu akan menampilkan dokumentasi jika Koleksi dan modul terpasang dengan benar.

$ ansible-doc community.kubernetes.k8s_info

Periksa buku pedoman sederhana yang disebut k8s-cluster-info.yaml di bawah ini, yang menampilkan informasi pod dari cluster 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 }}"

Catatan :Anda perlu menginstal dependensi Python lain yang diperlukan (mis., openshift , PyYAML , dll.) agar modul berfungsi. Topik ini tidak termasuk dalam cakupan artikel ini tetapi Anda dapat merujuk ke prosedur standar (atau membaca cara Menginstal Modul Python secara offline).

[ Panduan pemilik API:7 praktik terbaik program API yang efektif ] 

Menutup

Dengan diperkenalkannya Red Hat Ansible Automation Platform, Anda dapat menyimpan konten yang terorganisir di dalam jaringan Anda. Namun, ini perlu disiapkan secara manual seperti halnya Red Hat Ansible Tower. Baca selengkapnya tentang Automation Hub untuk detailnya.


Linux
  1. Cara Menginstal Ansible di AlmaLinux 8

  2. Cara Menginstal Ansible di CentOS 8

  3. Cara Menginstal Ansible di Oracle Linux 8

  1. Cara Menginstal Node.js di Fedora 35 / Fedora 34

  2. Cara Menginstal Ansible di Debian 11

  3. Cara menginstal NodeJs di Ubuntu 18.04

  1. Cara Menginstal dan Mengonfigurasi Ansible di Ubuntu 20.04

  2. Cara Menginstal Ansible di Ubuntu

  3. Cara Menginstal Ansible di CentOS 7