Hvordan bruke Cloud-Init på Ubuntu 22.04
Når du bestiller en ny server er det ofte ting du ønsker å sette opp på denne serveren. Over tid får man ofte en rekke ting man ønsker å gjøre hver gang man setter opp en ny server. Cloud-init er et godt verktøy for dette.
Når du bestiller Linux-server med Ubuntu 22.04 fra Deploi er cloud-init allerede installert. Dette sjekker du enkelt med:
dpkg --get-selections | grep cloud-init
Cloud-init baserer oppsettet av en server på en fil. Denne ligger i /etc/cloud/cloud.cfg. Her er et eksempel hvor vi:
- Oppretter brukeren martin
- Brukeren «martin» kan logge på med sin privatnøkkel.
- Brukeren «martin» har sudo-tilgang med passord.
- Vi har satt domene-navnet til test.deploi.no
- Vi har deaktivert passord-login på ssh.
#cloud-config
users:
- name: martin
lock_passwd: false
passwd: $6$WmVp5JtYBM$o2SmtSjo4jbvnG80N8lozAw3a6eIuO9Oe7i9PKwnn9cz4o5YE8jGwtz4L2GWX2xKjlwHXAUMDMUy2.gyMQG5W.
gecos: Martin Johansen
ssh_authorized_keys:
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILIbYbEUetLrmd1c7gniKp10nZtLwFSBcHXrgV9Jeyus
groups: adm, audio, cdrom, dialout, dip, floppy, lxd, netdev, plugdev, sudo, video
shell: /bin/bash
preserve_hostname: false
hostname: test.deploi.no
manage_etc_hosts: true
ssh_pwauth: false
cloud_init_modules:
- set_hostname
- update_hostname
- update_etc_hosts
- users-groups
- ssh
cloud_config_modules:
- set-passwords
system_info:
distro: ubuntu
network:
renderers: ['eni']
ntp_client: auto
paths:
cloud_dir: /var/lib/cloud/
templates_dir: /etc/cloud/templates/
ssh_svcname: ssh
Du kan bruke verktøyet mkpasswd til å lage et passord:
mkpasswd -m sha-512
Dette verktøyet kan brukes for å lage et nøkkelpar:
ssh-keygen -t ed25519 -f key
Du kan sjekke om filen er satt opp riktig ved å kjøre:
cloud-init schema --config-file /etc/cloud/cloud.cfg
Lag denne filen /etc/cloud/cloud.cfg.d/99-installer.cfg
# Configure cloud-init for NoCloud
datasource_list: [ NoCloud, None ]
datasource:
NoCloud:
fs_label: system-boot
Kjør følgende kommandoer for å aktivere instillingene:
cloud-init clean cloud-init init
Mer informasjoin om hva du kan gjøre med Cloud-init finner du i dokumentasjonen til Cloud-init på Ubuntu 22.04.