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, memasukkantouch
membuat 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 01
danline 02
sebagai 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 manau
singkatan dari pemilik ,g
singkatan dari grup , dano
singkatan dari lainnya . Izin didefinisikan sebagair
untuk baca ,w
untuk tulis , danx
untuk 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