This is an old revision of the document!
LXC Cloud-Init
Cloud-init digunakan untuk konfigurasi instance LXC secara otomatis saat first boot. Konfigurasi utama: User Data, Vendor Data, dan Network Config.
Lokasi data di dalam guest:
/var/lib/cloud/seed/nocloud-net/
1. User Data
Fungsi: buat user, SSH key, akses sudo, hostname, install package, jalankan command.
Lokasi GUI:
Instance → Configuration → Cloud Init → User Data → Override
Wajib diawali
#cloud-config
.
Buat User + SSH Key
#cloud-config users: - name: ilyasa groups: sudo shell: /bin/bash sudo: ALL=(ALL) NOPASSWD:ALL ssh_authorized_keys: - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... ilyasa@laptop
Cek setelah boot:
id ilyasa ssh ilyasa@IP_ADDRESS
Disable Password Authentication
#cloud-config users: - name: ilyasa groups: sudo shell: /bin/bash sudo: ALL=(ALL) NOPASSWD:ALL ssh_authorized_keys: - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... ilyasa@laptop ssh_pwauth: false
2. Vendor Data
Fungsi: konfigurasi umum/default (timezone, package standar, service umum).
Lokasi GUI:
Instance → Configuration → Cloud Init → Vendor Data → Override
Wajib diawali
#cloud-config
.
#cloud-config timezone: Asia/Jakarta package_update: true packages: - openssh-server - curl - wget - vim - htop
3. Network Config
Fungsi: konfigurasi interface jaringan. Tidak menggunakan
#cloud-config
.
Lokasi GUI:
Instance → Configuration → Cloud Init → Network Config → Override
DHCP IPv4
version: 2 ethernets: eth0: dhcp4: true
DHCP IPv4 + IPv6
version: 2 ethernets: eth0: dhcp4: true dhcp6: true
Static IPv4
Contoh: IP 10.14.3.50/24, Gateway 10.14.3.1, DNS 10.14.3.53 & 1.1.1.1
version: 2 ethernets: eth0: addresses: - 10.14.3.50/24 routes: - to: default via: 10.14.3.1 nameservers: addresses: - 10.14.3.53 - 1.1.1.1
Static IPv4 tanpa Gateway
version: 2 ethernets: eth0: addresses: - 10.14.3.50/24 nameservers: addresses: - 10.14.3.53
Static IPv4 dengan Multiple IP
version: 2 ethernets: eth0: addresses: - 10.14.3.50/24 - 10.14.3.51/24 - 10.14.3.52/24 routes: - to: default via: 10.14.3.1 nameservers: addresses: - 10.14.3.53 - 1.1.1.1
Static IPv4 + IPv6
version: 2 ethernets: eth0: addresses: - 10.14.3.50/24 - 2001:db8:10:14::50/64 routes: - to: default via: 10.14.3.1 - to: default via: 2001:db8:10:14::1 nameservers: addresses: - 10.14.3.53 - 1.1.1.1 - 2001:4860:4860::8888
4. Static Routing Tambahan
version: 2 ethernets: eth0: addresses: - 10.14.3.50/24 routes: - to: default via: 10.14.3.1 - to: 10.20.0.0/24 via: 10.14.3.254 - to: 172.20.22.0/26 via: 10.14.3.253 nameservers: addresses: - 10.14.3.53 - 1.1.1.1
5. Verifikasi Cloud-Init
Cek status:
cloud-init status --long
Cek data yang diberikan Incus:
cd /var/lib/cloud/seed/nocloud-net ls
Output:
meta-data network-config user-data vendor-data
Cek isi masing-masing:
cat /var/lib/cloud/seed/nocloud-net/user-data cat /var/lib/cloud/seed/nocloud-net/vendor-data cat /var/lib/cloud/seed/nocloud-net/network-config
6. Verifikasi Network
ip addr show eth0 ip route resolvectl status
7. Catatan Penting
- User Data & Vendor Data harus diawali
#cloud-config
.
- Network Config tidak pakai
#cloud-config
.
- Gunakan image varian
/cloud
(sudah support cloud-init).
- SSH public key diletakkan di
ssh_authorized_keys
.
- Untuk config baru, pakai Network Config v2 (lebih mudah dibaca).
- Jangan edit manual file di
/var/lib/cloud/seed/nocloud-net/
, itu data yang di-generate otomatis oleh Incus.
Ringkasan Format
| GUI Field | Format | Contoh |
|---|---|---|
| User Data | Cloud-config | #cloud-config + YAML |
| Vendor Data | Cloud-config | #cloud-config + YAML |
| Network Config | Network-config | version: 2 + YAML |
| SSH Key | Cloud-config | ssh_authorized_keys |
| DHCP | Network-config | dhcp4: true |
| Static IP | Network-config | addresses + routes |