Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| virtualization:lxd:cloud-init [2026/09/27 21:11] – ilyasa | virtualization:lxd:cloud-init [2026/09/28 02:46] (current) – ilyasa | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Cloud-Init: Dokumentasi Umum ====== | + | {{indexmenu_n> |
| + | ====== | ||
| ===== Apa itu Cloud-Init? ===== | ===== Apa itu Cloud-Init? ===== | ||
| Line 13: | Line 14: | ||
| Semua bisa disiapkan **sebelum** instance dinyalakan. | Semua bisa disiapkan **sebelum** instance dinyalakan. | ||
| + | |||
| + | {{ : | ||
| + | |||
| ===== 3 Komponen Utama ===== | ===== 3 Komponen Utama ===== | ||
| Line 180: | Line 184: | ||
| addresses: | addresses: | ||
| - 10.14.3.53 | - 10.14.3.53 | ||
| + | </ | ||
| + | |||
| + | ===== Parameter Tambahan yang Berguna ===== | ||
| + | |||
| + | Selain contoh dasar di atas, berikut parameter lain yang sering dipakai. | ||
| + | |||
| + | ==== User Data — Parameter Lain ==== | ||
| + | |||
| + | **Konfigurasi user lebih lanjut:** | ||
| + | |||
| + | <code yaml> | ||
| + | # | ||
| + | |||
| + | users: | ||
| + | - name: ilyasa | ||
| + | groups: sudo | ||
| + | shell: /bin/bash | ||
| + | sudo: ALL=(ALL) NOPASSWD: | ||
| + | lock_passwd: | ||
| + | passwd: $6$rounds=4096$... | ||
| + | primary_group: | ||
| + | expiredate: ' | ||
| + | </ | ||
| + | |||
| + | **Set password tanpa hash manual (auto-generate/ | ||
| + | |||
| + | <code yaml> | ||
| + | chpasswd: | ||
| + | list: | | ||
| + | ilyasa: | ||
| + | expire: false | ||
| + | </ | ||
| + | |||
| + | **Hostname & FQDN:** | ||
| + | |||
| + | <code yaml> | ||
| + | hostname: server-001 | ||
| + | fqdn: server-001.ilyasa.id | ||
| + | manage_etc_hosts: | ||
| + | </ | ||
| + | |||
| + | **Tulis file langsung ke instance:** | ||
| + | |||
| + | <code yaml> | ||
| + | write_files: | ||
| + | - path: /etc/motd | ||
| + | content: | | ||
| + | Selamat datang di server saya. | ||
| + | owner: root:root | ||
| + | permissions: | ||
| + | </ | ||
| + | |||
| + | **Jalankan command saat boot:** | ||
| + | |||
| + | <code yaml> | ||
| + | bootcmd: | ||
| + | - echo "jalan paling awal, bahkan sebelum network up" >> / | ||
| + | |||
| + | runcmd: | ||
| + | - systemctl enable --now nginx | ||
| + | - ufw allow 22/tcp | ||
| + | </ | ||
| + | |||
| + | **Matikan/ | ||
| + | |||
| + | <code yaml> | ||
| + | power_state: | ||
| + | mode: reboot | ||
| + | timeout: 30 | ||
| + | message: Rebooting setelah provisioning | ||
| + | </ | ||
| + | |||
| + | **Lain-lain yang sering dipakai:** | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ==== Vendor Data — Parameter Lain ==== | ||
| + | |||
| + | Vendor Data pada dasarnya bisa memakai **modul yang sama** dengan User Data, tapi biasanya diisi hal-hal default/ | ||
| + | |||
| + | **Locale & NTP:** | ||
| + | |||
| + | <code yaml> | ||
| + | locale: en_US.UTF-8 | ||
| + | |||
| + | ntp: | ||
| + | enabled: true | ||
| + | servers: | ||
| + | - 0.id.pool.ntp.org | ||
| + | - 1.id.pool.ntp.org | ||
| + | </ | ||
| + | |||
| + | **Resize disk otomatis (berguna kalau disk image lebih kecil dari alokasi):** | ||
| + | |||
| + | <code yaml> | ||
| + | growpart: | ||
| + | mode: auto | ||
| + | devices: ['/' | ||
| + | </ | ||
| + | |||
| + | **Mount tambahan (misal swap):** | ||
| + | |||
| + | <code yaml> | ||
| + | mounts: | ||
| + | - [ /dev/sdb1, /mnt/data, ext4, " | ||
| + | |||
| + | swap: | ||
| + | filename: /swapfile | ||
| + | size: 1073741824 | ||
| + | </ | ||
| + | |||
| + | **Upgrade & reboot otomatis kalau perlu:** | ||
| + | |||
| + | <code yaml> | ||
| + | package_upgrade: | ||
| + | package_reboot_if_required: | ||
| + | </ | ||
| + | |||
| + | ==== Network Config — Parameter Lain ==== | ||
| + | |||
| + | Network Config v2 mengikuti sintaks **Netplan**, | ||
| + | |||
| + | **MTU custom:** | ||
| + | |||
| + | <code yaml> | ||
| + | version: 2 | ||
| + | ethernets: | ||
| + | eth0: | ||
| + | dhcp4: true | ||
| + | mtu: 1400 | ||
| + | </ | ||
| + | |||
| + | **Match interface berdasarkan MAC address (berguna kalau nama interface tidak konsisten): | ||
| + | |||
| + | <code yaml> | ||
| + | version: 2 | ||
| + | ethernets: | ||
| + | nic0: | ||
| + | match: | ||
| + | macaddress: " | ||
| + | set-name: eth0 | ||
| + | dhcp4: true | ||
| + | </ | ||
| + | |||
| + | **DNS search domain:** | ||
| + | |||
| + | <code yaml> | ||
| + | nameservers: | ||
| + | addresses: [10.14.3.53] | ||
| + | search: [fopens.example, | ||
| + | </ | ||
| + | |||
| + | **Kontrol DHCP lebih detail (dhcp4-overrides): | ||
| + | |||
| + | <code yaml> | ||
| + | version: 2 | ||
| + | ethernets: | ||
| + | eth0: | ||
| + | dhcp4: true | ||
| + | dhcp4-overrides: | ||
| + | use-dns: false # abaikan DNS dari DHCP, pakai nameservers manual | ||
| + | route-metric: | ||
| + | </ | ||
| + | |||
| + | **Interface opsional (boot tidak nunggu link up, cocok untuk lab/ | ||
| + | |||
| + | <code yaml> | ||
| + | version: 2 | ||
| + | ethernets: | ||
| + | eth0: | ||
| + | dhcp4: true | ||
| + | optional: true | ||
| + | </ | ||
| + | |||
| + | **VLAN tagging:** | ||
| + | |||
| + | <code yaml> | ||
| + | version: 2 | ||
| + | ethernets: | ||
| + | eth0: | ||
| + | dhcp4: false | ||
| + | vlans: | ||
| + | vlan100: | ||
| + | id: 100 | ||
| + | link: eth0 | ||
| + | addresses: | ||
| + | - 10.100.0.10/ | ||
| + | </ | ||
| + | |||
| + | **Bridge (berguna untuk lab virtualisasi/ | ||
| + | |||
| + | <code yaml> | ||
| + | version: 2 | ||
| + | ethernets: | ||
| + | eth0: | ||
| + | dhcp4: false | ||
| + | bridges: | ||
| + | br0: | ||
| + | interfaces: [eth0] | ||
| + | addresses: | ||
| + | - 10.14.3.50/ | ||
| + | routes: | ||
| + | - to: default | ||
| + | via: 10.14.3.1 | ||
| </ | </ | ||