Ne çalışır, ne zaman
Her Linux imajı cloud-init taşır. İlk açılışta siparişinize bağlı user-data'yı okur, bir kez uygular ve bir işaret yazar, böylece bir daha asla çalışmaz. Tüm bunlar siz daha bir şey yazamadan olur; mesele de budur: bir örneğin var olması ile yapılandırılması arasındaki pencere, sizin olmamanız gereken penceredir.
Sipariş vermeden önce belgeyi doğrulayın. Şema denetleyici, aksi takdirde size yeniden oluşturmaya mal olacak girinti hatasını yakalar:
cloud-init schema --config-file user-data.yaml --annotateFaydalı işleri yapan bir user-data
#cloud-config
hostname: edge-01
fqdn: edge-01.example.com
timezone: UTC
users:
- name: deploy
groups: [sudo]
shell: /bin/bash
sudo: "ALL=(ALL) NOPASSWD:ALL"
ssh_authorized_keys:
- ssh-ed25519 AAAAC3Nza... deploy@laptop
ssh_pwauth: false
disable_root: true
package_update: true
package_upgrade: true
packages:
- nftables
- vnstat
- mtr-tiny
write_files:
- path: /etc/ssh/sshd_config.d/10-local.conf
permissions: "0644"
content: |
PermitRootLogin no
PasswordAuthentication no
AllowUsers deploy
runcmd:
- [systemctl, enable, --now, nftables]
- [systemctl, restart, ssh]İlk satır ne bir yorum ne de isteğe bağlıdır. #cloud-config olmadan belge sessizce yok sayılır ve örnek, hiçbir şey eklememişsiniz gibi açılır.
AlmaLinux'ta groups: [sudo], groups: [wheel] olur ve yeniden başlatılacak hizmet sshd'dur. Diğer her şey aynıdır.
Çalışırken izlemek
cloud-init status --long
journalctl -u cloud-final -b
less /var/log/cloud-init-output.logGünlük, hangi aşamanın başarısız olduğunu söyler. cloud-init-output.log, runcmd girdilerinizin gerçek çıktısını tutar; sebebi orada bulacaksınız.
İçine sır koymayın
User-data, örneğin ömrü boyunca içeriden okunabilir kalır:
cloud-init query userdataOradaki her şey, root'a ulaşan herhangi bir işlem için ve diskin anlık görüntüsünü geri yükleyen herkes için kullanılabilir. Sırrı getiren bir kimlik bilgisi yüklemek için kullanın, sırrı taşımak için değil.
Örnek yakmadan test etmek
cloud-init clean --logs --rebootBu, işareti, günlükleri ve önbelleğe alınmış veri kaynağını kaldırır, ardından temiz bir ilk açılışa yeniden başlar. Bunu atılacak bir örnekte çalıştırın. Üretimde çalıştırın ve runcmd'nizin ikinci kez ne yaptığını keşfedersiniz; bu, nadiren ilk seferde yaptığı şeydir.
Nerede durmalı
cloud-init önyükleme içindir ve makinenin yarın hangi durumda olması gerektiği hakkında hiçbir fikri yoktur. Gerçek araçlarınızın devralabileceği noktaya ulaşmak için kullanın: bir anahtar, bir ağ, bir aracı. Orada durun. Altmış satır sağlıklı bir user-data'dır ve altı yüz satır, yakınsama yolu olmayan bir yapılandırma yönetim sistemidir.
cloud-init query -a
cloud-init query ds.meta_dataÖrnek kimliği, site kodu, ana bilgisayar adı ve açılışta atanan adreslerin tümü orada yaşar; bir betiğin, kendini bir yere kaydetmesi ve nerede uyandığını henüz bilmemesi gerektiğinde ihtiyaç duyduğu şey budur.