Pendahuluan
Ansible adalah alat Infrastruktur sebagai Kode yang memungkinkan Anda menggunakan satu lokasi pusat (Ansible control node) untuk memantau dan mengontrol sejumlah besar server jarak jauh (host).
Gunakan Ansible untuk menyiapkan sejumlah tugas yang dapat dilakukan oleh host jarak jauh, termasuk membuat file dan direktori baru.
Tutorial ini mencakup berbagai cara Anda dapat menggunakan Ansible untuk membuat file di host jarak jauh.
Prasyarat
- Sistem yang menjalankan Ubuntu 20.04
- Akses ke baris perintah / jendela terminal
- Ansible diinstal dan dikonfigurasi (lihat panduan kami tentang Menginstal Ansible di Windows atau Menginstal Ansible di Ubuntu)
Membuat Playbook yang Memungkinkan
Playbook yang memungkinkan adalah daftar tugas yang Anda ingin host jarak jauh Anda lakukan. Mereka dapat disimpan dan digunakan kembali, memungkinkan Anda untuk mengotomatiskan proses yang kompleks.
Setiap perintah yang ingin Anda keluarkan ke host jarak jauh, termasuk membuat file dan folder, adalah tugas yang harus Anda sertakan dalam buku pedoman. Setelah Anda menjalankan playbook, host jarak jauh Anda melakukan semua tugas yang ditentukan di dalamnya.
Untuk membuat buku pedoman Ansible, gunakan perintah:
sudo nano /etc/ansible/playbook.yaml Perintah ini membuat file .yaml bernama 'playbook' di folder instal yang memungkinkan. Kami akan menggunakan tugas di playbook.yaml file untuk membuat file dan folder di host jarak jauh kami.
Menggunakan fitur dry run Ansible memungkinkan pengguna untuk menjalankan buku pedoman tanpa membuat perubahan pada server. Ini menggunakan mode pemeriksaan bawaan untuk membuktikan buku pedoman untuk kesalahan sebelum dieksekusi.
Membuat File Kosong
Cara tercepat untuk membuat file kosong adalah dengan menggunakan file dari Ansible modul.
Tambahkan konfigurasi berikut ke buku pedoman Ansible Anda:
---
- hosts: all
tasks:
- name: Creating an empty file
file:
path: "/your path"
state: touch
File di atas memiliki komponen berikut:
hosts: Menentukan host jarak jauh mana dari file inventaris Ansible yang ingin Anda jalankan tugas. Semua berarti bahwa setiap host menerima perintah, tetapi Anda juga dapat memasukkan nama kategori host atau satu host individu.tasks: Mengumumkan bahwa host jarak jauh perlu melakukan tugas.name:Memungkinkan Anda menentukan nama untuk tugas tersebut. Nama tersebut hanya untuk referensi Anda dan tidak memiliki pengaruh pada tugas itu sendiri.file:Melibatkan modul file Ansible untuk membuat file baru.path:Menentukan jalur untuk file baru di hard drive host jarak jauh.state:Mirip dengan perintah sentuh di terminal Ubuntu, memasukkantouchmembuat file kosong di lokasi yang Anda pilih.
Untuk menjalankan buku pedoman, gunakan:
ansible-playbook /etc/ansible/playbook.yaml
Membuat File Dengan Konten
Jika Anda ingin membuat file baru dengan konten, Anda dapat menggunakan metode di atas terlebih dahulu untuk membuat file kosong, lalu gunakan blockinfile atau lineinfile modul untuk menyisipkan konten.
Cara yang lebih cepat adalah dengan menggunakan copy modul. Meskipun modul ini digunakan untuk menyalin file dari node kontrol ke host jarak jauh, Anda dapat menyertakan content parameter untuk langsung menambahkan konten ke file kosong.
Gunakan konfigurasi ini di buku pedoman Anda:
---
- hosts: all
tasks:
- name: Creating a file with content
copy:
dest: "/your path"
content: |
line 01
line 02 Dalam file, kami menggunakan:
copy:Melibatkan modul salinan Ansible.dest:Menentukan jalur untuk file baru Anda.content:Parameter ini akan menambahkanline 01danline 02sebagai konten file baru.
Membuat Banyak File
Anda dapat membuat banyak file dengan menggunakan satu tugas di buku pedoman Ansible.
Gunakan konfigurasi berikut untuk membuat banyak file:
---
- hosts: all
tasks:
- name: Create multiple files
file:
path: "{{ item }}"
state: touch
with_items:
- test01.txt
- test02.txt
- test03.txt
- test04.txt Dalam file konfigurasi di atas, kami mendefinisikan:
path:"{{ item }}"value berarti Ansible akan membuat jalur terpisah untuk masing-masing file. Secara default, file-file ini masuk ke folder Home dari host jarak jauh. Tentukan jalur yang berbeda dengan menggunakan/your_folder_path/"{{ item }}".with_items:Parameter ini digunakan untuk memulai daftar file yang akan dibuat. Daftar file sebanyak yang Anda inginkan. Dalam contoh kami, kami membuat daftar empat file berjudul test .
Membuat Direktori
Membuat direktori baru menggunakan konfigurasi yang sama seperti saat membuat file kosong. Satu-satunya perbedaan adalah bahwa di bawah state parameter, Anda memasukkan directory sebagai nilai:
---
- hosts: all
tasks:
- name: Creating a new directory
file:
path: "/your path"
state: directory Menghapus File
Playbook yang memungkinkan juga dapat menghapus file yang ada. Untuk melakukannya, setel state parameter menjadi absent :
---
- hosts: all
tasks:
- name: Removing a file
file:
path: "/your path"
state: absent Jika file sudah dihapus, perintah ini tidak melakukan apa-apa.
Mengatur Izin File
Dengan semua contoh di atas, Anda juga dapat mengatur izin untuk file dan folder baru. Untuk ini, Anda perlu menggunakan mode parameter.
Ada dua cara untuk melakukannya:
- Menggunakan format mode oktal: Anda dapat menggunakan angka oktal, seperti 0644 atau 0777. Jangan lupa awalan 0, karena mengabaikannya dapat menyebabkan hasil yang tidak diharapkan.
- Menggunakan format mode simbolis: Anda dapat menggunakan nilai seperti
u=rwx,g=rx, atauo=rx, di manausingkatan dari pemilik ,gsingkatan dari grup , danosingkatan dari lainnya . Izin didefinisikan sebagairuntuk baca ,wuntuk tulis , danxuntuk jalankan .
Misalnya, Anda dapat menggunakan nilai oktal 0755, saat mendefinisikan pemiliknya:
---
- hosts: all
tasks:
- name: Create a new file with permissions
file:
path: "/your path"
state: touch
mode: 0755
owner: test Anda juga dapat menggunakan simbol yang setara dengan 0755:
---
- hosts: all
tasks:
- name: Create a new file with permissions
file:
path: "/your path"
state: touch
mode: u=rwx,g=rx,o=rx
owner: test