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.