GNU/Linux >> Belajar Linux >  >> Linux

Cara:Memulai dengan Ansible

Pengantar

Ansible adalah alat administrasi sistem yang memungkinkan administrasi beberapa perangkat dari satu perangkat pusat. Ini dibandingkan dengan alat seperti Wayang atau Koki, tetapi sementara paket-paket itu memerlukan instalasi agen pada sistem klien, Ansible beroperasi dengan meneruskan perintah melalui ssh tanpa memerlukan agen sama sekali. Kami akan melihat beberapa tugas administratif yang dapat dilakukan Ansible sehingga Anda bisa mendapatkan gambaran yang lebih baik tentang apakah Ansible mungkin tepat untuk Anda.


.

Prasyarat

  • Perangkat kontrol Linux, BSD, atau OSX.
  • akses ssh (firewall dan kredensial) ke perangkat klien dari perangkat kontrol Anda. Ansible lebih suka menggunakan kunci ssh untuk mengakses perangkat klien, tetapi kami juga akan menunjukkan kepada Anda opsi menggunakan nama pengguna dan sandi.
  • Python 2.6 atau 2.7 diinstal pada perangkat kontrol.

.

Pemasangan

Ansible tersedia melalui manajer paket dari distribusi Linux/BSD/OSX utama. Ini juga tersedia melalui penginstal pip Python.

CentOS/Fedora:

sudo yum install ansible

Ubuntu (Anda harus menambahkan Ansible PPA terlebih dahulu):

sudo apt-get install software-properties-common
sudo apt-add-repository ppa:ansible/ansible
sudo apt-get update
sudo apt-get install ansible

Arch Linux:

pacman -S ansible

FreeBSD:

sudo pkg install ansible

Manajer paket Python, pip (pengguna OSX juga dapat menginstal dengan pip):

sudo pip install ansible

Menyiapkan Akses ke Klien yang Memungkinkan

Host

Salah satu manfaat menggunakan Ansible adalah kemampuan untuk mengelola banyak klien dari satu perangkat kontrol–dari antarmuka terminal yang sama. Anda dapat menentukan berbagai grup server klien berdasarkan fungsi, lokasi, dan/atau OS dengan membuat grup di /etc/ansible/hosts berkas.

[mailservers]
smtp.orl-fl.example.com
smtp.dal-tx.example.com

[db_servers]
db.orl-fl.example.com
db.sfo-ca.example.com

[orlando]
smtp.orl-fl.example.com
db.orl-fl.examle.com

[nameservers]
ns[01:12].example.com

Nama yang diapit tanda kurung siku [] mendefinisikan nama grup dan menyertakan host dalam daftar yang mengikutinya. Anda juga dapat menunjukkan rentang berurutan dalam pola nama host dengan tanda kurung siku dan titik dua, seperti dalam ns[01:12].example.com di atas.

Seorang klien mungkin ada dalam beberapa kelompok. Nama grup berfungsi sebagai alias untuk daftar grup, sehingga memudahkan untuk merujuk grup server mana yang akan Anda targetkan dengan perintah atau buku pedoman Ansible khusus Anda.
.

Tombol ssh

Ansible bekerja paling baik ketika server kontrol Anda – server tempat Anda akan menjalankan perintah Ansible – dapat menggunakan kunci ssh untuk mengakses host klien. Saat Anda menjalankan perintah Ansible tanpa opsi tambahan, defaultnya adalah mencoba mengakses klien jarak jauh melalui kunci ssh.

Tip:Jika Anda telah mengamankan kunci ssh pribadi Anda dengan frasa sandi, mungkin tidak nyaman dan tidak efisien untuk memasukkan frasa sandi itu setiap kali Anda perlu mendekripsinya untuk setiap sesi ssh yang akan Anda buka dengan Ansible. Untuk menyederhanakan proses ini, buka shell terpisah dengan ssh-agent . Saat Anda mengimpor kunci pribadi ke dalam shell ini, Anda hanya perlu memasukkan frasa sandi Anda sekali untuk menambahkan kunci pribadi yang tidak terenkripsi.

ssh-agent bash
ssh-add ~/.ssh/id_rsa

Perintah pertama membuka bash shell baru. ssh-add perintah akan meminta Anda untuk frasa sandi kunci pribadi Anda dan kemudian mengimpor kunci pribadi RSA ke dalam shell ini. Anda dapat, tentu saja, mengganti kunci pribadi yang sesuai, jika menggunakan id_ecdsa atau id_dsa , misalnya.

.

.

Akses ssh (Tanpa Tombol ssh)

Jika Anda memiliki server klien yang tidak memiliki kunci ssh yang diatur, Anda masih dapat menggunakan Ansible dengan pengguna Anda saat ini dan meminta kata sandi pengguna Anda. Misalnya, kita mungkin ingin menggunakan ping modul untuk memverifikasi bahwa semua host kami di db_servers grup responsif.

ansible db_servers -m ping --ask-pass

Perintah ini pertama-tama akan meminta kata sandi ssh pengguna saat ini untuk digunakan untuk mengakses semua server di db_servers grup sebelum menjalankan modul pada setiap klien.

Catatan:Perintah ini akan mengharuskan pengguna Anda ada di setiap klien, diizinkan mengakses ssh, dan menggunakan kata sandi yang sama.

Juga, ping modul tidak terkait dengan ping ICMP yang menguji konektivitas jaringan. Penggunaannya dengan ansible perintah memverifikasi bahwa server klien dapat diakses dengan pengguna yang ditunjukkan dan bahwa server klien memiliki versi Python yang dapat digunakan oleh Ansible. ping modul harus mengembalikan pong tanggapan setelah berhasil diselesaikan..

.

Akses ssh (Dengan Kata Sandi)

Perintah Ansible Default juga menganggap bahwa, selain menggunakan kunci ssh, Anda menggunakan sudo tanpa kata sandi. Jika Anda memiliki server klien yang memerlukan kata sandi untuk mendapatkan akses sudo, Anda dapat menggunakan opsi tambahan untuk menjadi sudo dan meminta kata sandi sudo. Jadi, misalnya, untuk me-reboot semua server di mailservers grup menggunakan nama pengguna username .

ansible mailservers -a "/sbin/reboot" -u username --become --ask-become-pass

--become pilihan menunjukkan bahwa pengguna akan menjadi pengguna istimewa (sudo), dan --ask-become-pass opsi meminta Ansible untuk meminta kata sandi untuk menjadi pengguna istimewa itu sebelum menjalankan perintah.

--become dan --ask-become-pass options adalah opsi yang lebih baru (pada versi Ansible 1.9) yang dimaksudkan untuk menggantikan --sudo yang lebih lama dan --ask-sudo-pass (-K ) pilihan, masing-masing. Versi lama ini masih berfungsi. Penggantian sudo untuk become memperluas cakupan opsi ini untuk menyertakan integrasi dengan alat yang menggunakan cara selain sudo untuk mengaktifkan eskalasi hak istimewa.

.

Beberapa Perintah CLI Dasar yang Memungkinkan

Meskipun kekuatan sebenarnya dari Ansible terletak pada penggunaan buku pedoman, Anda juga dapat menjalankan ansible perintah untuk melakukan beberapa manajemen klien cepat untuk contoh di mana tidak masuk akal untuk membuat buku pedoman atau di mana Anda mungkin hanya perlu mendorong satu perintah ke sekelompok perangkat klien.

ansible perintah mengikuti pola ansible [group] OPTIONS .
.

Jalankan Pembaruan Yum

Jika, misalnya, Anda ingin menjalankan pembaruan yum pada server di mailservers Anda group, Anda dapat menyelesaikan tugas ini dengan perintah Ansible berikut:

ansible mailservers -m yum -a "name=* state=latest" --become

Perintah ini memperbarui semua server di mailservers grup dengan yum modul (-m ). -a opsi menunjukkan argumen tertentu dalam tanda kutip ganda–dalam hal ini, memperbarui semua paket yang diinstal (menggunakan * wildcard) ke status terbarunya.
.

Salin File ke Klien

Anda dapat menggunakan Ansible untuk mendistribusikan file ke sekelompok server klien.

ansible orlando -m copy -a "src=/home/scripts/foo.sh dest=/opt/scripts/foo.sh"

Perintah ini memanggil copy modul dan menunjukkan src (sumber) dan dest (tujuan) dalam tanda kutip untuk argumen. Lokasi sumber default ke perangkat yang menjalankan perintah Ansible ini dan bisa absolut atau relatif. Lokasi tujuan adalah lokasi pada perangkat klien jarak jauh dan harus selalu mutlak.

Anda juga dapat menggunakan copy modul untuk lebih menyempurnakan atribut file yang Anda salin.

ansible orlando -m copy -a "src=/home/scripts/foo.sh dest=/opt/scripts/foo.sh owner=foo group=bar mode=0755"

Perintah ini juga mengubah izin pemilik, grup, dan file dari file pada setiap klien di orlando grup.
.

Jalankan Perintah Shell

Anda juga dapat menjalankan skrip pada setiap klien dengan shell modul.

ansible orlando -m shell -a '/opt/scripts/foo.sh >> /home/foo/bar.txt' 

Perintah ini akan mengeksekusi foo.sh script dan mengarahkan outputnya ke /home/foo/bar.txt mengajukan. Perhatikan kutipan tunggal di sini. Anda memerlukan tanda kutip tunggal, bukan tanda kutip ganda agar Anda dapat meneruskan >> operator ke shell jarak jauh.
.

Amuse-Bouche yang Memungkinkan

Ada banyak lagi perintah dan modul yang dapat Anda gunakan, tetapi contoh ini akan memberikan pengenalan yang baik tentang betapa bermanfaatnya Ansible jika Anda mengelola bahkan hanya sejumlah kecil server. Jika Anda berada dalam posisi yang terkadang tidak menyenangkan karena harus melakukan tugas berulang di seluruh infrastruktur server Anda, kami harap contoh ini memberi Anda gambaran tentang bagaimana Ansible dapat membantu Anda bekerja lebih cerdas (dan lebih efisien!).

Pastikan untuk memeriksa kembali dengan kami di masa mendatang untuk lebih banyak artikel tentang administrasi server dan hal-hal lain yang dapat Anda lakukan dengan Ansible. Atlantic.Net menawarkan koleksi luas solusi hosting VPS fleksibel untuk perusahaan rintisan kecil hingga perusahaan mapan.
.
.


Linux
  1. Memulai dengan Zsh

  2. Memulai dengan ls

  3. Bagaimana Memulai Dengan Juju?

  1. Memulai dengan GnuCash

  2. Memulai PostgreSQL di Linux

  3. Memulai SSH di Linux

  1. Memulai dengan Etcher.io

  2. Memulai dengan ekspresi reguler

  3. Memulai dengan Tmux