Format YAML Ansible Playbook
Memandu
Format YAML Ansible Playbook
Tempelkan playbook Ansible atau file tugas Anda dan dapatkan YAML yang terformat secara konsisten dengan kunci tugas dalam urutan standar (name → modul → args → loop → when → register → notify). Alat ini mendeteksi apakah Anda menempelkan playbook atau daftar tugas, memvalidasi struktur, dan menampilkan saran gaya ansible-lint — nama modul FQCN, yang hilang changed_when, command-sebagai-modul, dan yang kuno yes/no nilai benar — sehingga playbook Anda lolos peninjauan pada pertama kali.
Cara Penggunaan
- Tempelkan YAML Ansible Anda ke kotak masukan — sebuah
playbook.yml, perantasks/main.yml, atau daftar tugas apa pun. - Biarkan Urutkan Kunci Tugas untuk menerapkan urutan kunci standar ansible-lint, atau matikan untuk mempertahankan urutan asli Anda.
- diaktifkan untuk menandai field yang diperlukan yang hilang, jenis peristiwa yang tidak dikenal, label runner yang tidak valid, dan yang rusak Validasi Struktur Ansible aktif untuk pengecekan bentuk play/tugas (yang hilang
hosts, tugas tanpa modul, struktur yang tidak validblock). - Beralih Tampilkan saran gaya ansible-lint untuk dorongan terhadap praktik terbaik seperti nama modul FQCN, yang hilang, dan peringatan idempotensi.
- Salin hasil yang telah diformat atau unduh sebagai
playbook.yml.
Fitur
- Urutan kunci tugas standar –
namepertama, lalu modul, laluargs,loop,when,register,notify— urutan yang diharapkan oleh ansible-lint. - Deteksi playbook vs daftar tugas – Secara otomatis menerapkan pengurutan tingkat play (
hosts,vars,pre_tasks,tasks,post_tasks,handlers) saat playbook terdeteksi. - Pengenalan blok / rescue / selalu – Mengurutkan tugas berbentuk blok tanpa merusak makna mereka.
- Validasi struktur – Menandai play yang hilang
hosts, tugas tanpa modul, daftar yang tidak valid, dan kunci tingkat play yang tidak dikenal. - Saran FQCN – Menyarankan
ansible.builtin.aptdaripadaapt, sesuai denganfqcn[action-core]. - Saran idempotensi – Memperingatkan saat
command/shelldieksekusi tanpachanged_when,creates, atauremoves. - deteksi penggantian modul – Menemukan instalasi paket yang dijalankan secara terpisah, panggilan systemctl, salinan git, dan instalasi pip yang memiliki modul kelas pertama.
- Deteksi nilai benar kuno – Menandai nilai
yes/no/on/offyang seharusnyatrue/false(yaml[truthy]). - Peringatan loop yang sudah usang – Menyoroti
with_items,with_dict, dan teman-temannya sehingga Anda dapat beralih keloop:. - Berjalan sepenuhnya di browser Anda – Tidak ada yang diunggah; inventaris dan rahasia Anda tetap lokal.
Tanya Jawab Umum
-
Mengapa ansible-lint peduli terhadap urutan kunci tugas?
Urutan kunci yang konsisten membuat playbook mudah dibaca: niat tugas (
name) dibaca terlebih dahulu, lalu modul yang melakukan tindakan, lalu argumen-argumennya, lalu alur kendali (loop,when,register,notify). Ketika seluruh tim mengikuti urutan yang sama, perbedaan tetap fokus pada perubahan nyata alih-alih pergeseran kosmetik, dan peninjau dapat mengenali pola tugas secara langsung. -
Apa itu FQCN dan mengapa digunakan untuk modul?
FQCN berarti Nama Koleksi Lengkap — jalur penuh, seperti
namespace.collection.modulealih-alih hanyaansible.builtin.apt. Karena Ansible 2.10 membagi modul menjadi koleksi, nama yang tidak lengkap dapat menimbulkan ketidakjelasan ketika beberapa koleksi mengirim modul dengan nama pendek yang sama. FQCN membuat penyelesaian eksplisit, mencatat sumber setiap modul, dan melindungi playbook dari perubahan urutan koleksi.apt. Karena Ansible 2.10 memisahkan modul menjadi koleksi, nama dasar dapat menimbulkan ketidakjelasan ketika beberapa koleksi menyediakan modul dengan nama pendek yang sama. Nama lengkap (FQCN) membuat penyelesaian lebih eksplisit, mencatat sumber setiap modul, dan melindungi playbook dari perubahan urutan koleksi. -
Kapan saya harus menggunakan loop: daripada with_items:?
Itu
with_*Lingkaran berbasis lookup adalah cara awal untuk mengulang, tetapi mereka menghubungkan iterasi dengan plugin lookup, yang membatasi kemampuan komposisi. Kata kunciloop:(diperkenalkan pada versi 2.5) menerima daftar langsung dan berpasangan denganloop_controluntuk indeks, label, dan henti. Untuk iterasi daftar sederhana, selalu pilihloop:; hanya jatuh kembali kewith_*untuk pola yang tidak memiliki ekivalen bersihloop. -
Mengapa nilai 'yes' dalam YAML dianggap kuno dalam Ansible?
YAML 1.1 menganggap
yes,no,on,off,truedanfalsesebagai tipe boolean. YAML 1.2 mempersempit tipe boolean hanya ketrue/false. Untuk tetap kompatibel ke depan dan tidak ambigu — terutama ketika nilai YAML diterima oleh alat di luar Ansible — aturan ansible-lintyaml[truthy]mengusulkan untuk tetap menggunakantruedanfalse. Penggunaan boolean ketat juga menghindari kejutan saat string literalyesdiperlukan sebagai data. -
Mengapa harus mendeklarasikan changed_when pada tugas command/shell?
Ansible menentukan apakah tugas mengubah sistem dengan memeriksa data kembali dari modul. Modul-modul ini tidak dapat mengetahui sendiri bahwa hal itu terjadi — mereka menganggap setiap eksekusi berhasil sebagai perubahan, yang membuat pengecekan idempotensi berbohong. Mendeklarasikan
command,shelldanraw(atau menggunakanchanged_when) memungkinkan Anda mengkodekan kondisi perubahan nyata: kode keluaran tertentu, pola keluaran, atau tanda file. Playbook yang idempoten menjadi lebih tenang dan lebih mudah dibandingkan.creates/removes) memungkinkan Anda mengkodekan kondisi perubahan nyata: kode keluaran tertentu, pola output, atau tanda file. Playbook yang idempoten menjadi lebih tenang dan lebih mudah dibandingkan sebagai akibatnya.
Instal Ekstensi Kami
Tambahkan alat IO ke browser favorit Anda untuk akses instan dan pencarian lebih cepat
恵 Papan Skor Telah Tiba!
Papan Skor adalah cara yang menyenangkan untuk melacak permainan Anda, semua data disimpan di browser Anda. Lebih banyak fitur akan segera hadir!
Alat Wajib Coba
Lihat semua Pendatang baru
Lihat semuaMemperbarui: Kita alat terbaru ditambahkan pada 8 Juni 2026
