17 Mayıs 2020 Pazar

Bulut İçin Linux İmajları Oluşturma ve Deploy Etme (2)

Merhaba. Bir önceki makalede "cloud-init" yöntemi ile KVM üzerinde CentOS deployment örneği yapılmıştı. Bu makalede ise Ubuntu 18.04 sürümünün KVM üzerinde aynı metot ile nasıl deploy edildiği anlatılacaktır.

Öncelikle Ubuntu 18.04 cluod imajı https://cloud-images.ubuntu.com/ adresinden download edilir. Ubuntu 18.04 Bionic kurulumu yapacağımızdan indirme linkimiz aşağıdaki gibi olacaktır.

~# wget https://cloud-images.ubuntu.com/bionic/20200507/bionic-server-cloudimg-amd64.img

Diskin boyutunu yeniden belirliyoruz.

~#qemu-img resize bionic-server-cloudimg-amd64.img 30G

Daha sonra bir önceki makalede de bahsettiğimiz user-data, meta-data, network-config dosyalarını konfigüre ediyoruz.

meta-data:
--------------------------------------------------------------------------------------------------------------------------
instance-id: ubuntu01
local-hostname: ubuntu01
--------------------------------------------------------------------------------------------------------------------------
network-config
--------------------------------------------------------------------------------------------------------------------------
version: 2
ethernets:
  eth0:
    dhcp4: false
    addresses:
      - 192.168.1.101/24
    gateway4: 192.168.1.1
    nameservers:
      search: [omer.com, bar.local]
      addresses: [8.8.8.8, 4.4.4.4]
--------------------------------------------------------------------------------------------------------------------------
user-data:
--------------------------------------------------------------------------------------------------------------------------
#cloud-config
password: Parola01
chpasswd: {expire: False}
ssh_pwauth: True
sudo: ["ALL=(ALL) NOPASSWD:ALL"]
timezone: Europe/Istanbul
ssh_authorized_keys:
  - ssh-rsa [ssh public key]
#apt paket yöneticisinin birincil olarak tr.archive.ubuntu adresini kullnamasını istiyoruz.
apt:
  primary:
    - arches: [default]
      uri: http://tr.archive.ubuntu.com/ubuntu/
runcmd:
  - systemctl disable cloud-config.service
  - systemctl disable cloud-final.service
  - systemctl disable cloud-init-local.service
  - systemctl disable cloud-init.service
  - localectl set-keymap trq
--------------------------------------------------------------------------------------------------------------------------
Konfigüre ettiğimiz dosyaları kullanarak işletim sistemini boot edeceğimiz "ubuntu.iso" dosyasını oluşturuyoruz.

~#genisoimage -output ubuntu.iso -volid cidata -joliet -rock user-data meta-data network-config

Son olarak virt-install komutu ile indirmiş olduğumuz qcow2 formatındaki ubuntu OS diskini işletim sistemi diski, oluşturulan "ubuntu.iso" kalıp dosyasını ise bootable media olarak  cdroma bağlayıp sanal makine özellikleri verilerek başlatılır.

~#virt-install --import --name ubuntu01 --memory 2048 --vcpus 2 --disk bionic-server-cloudimg-amd64.img,format=qcow2,bus=virtio --cdrom=ubuntu.iso --network bridge=br0 --graphics vnc  &


İşletim sistemi ayağı kalkarken cloud-init servisler ile istediğimiz şekilde konfigüre edilmiş olacaktır. Kurulum aşamaları log kayıtlarının incelenmesi için https://omerurhan.blogspot.com/2020/05/bulut-icin-linux-imajlar-olusturma-ve.html makalesinde anlatılan servislerin loglarına aşağıdaki komutlar ile ulaşılabilmektedir.

~# journalctl -u cloud-init-local.service
~# journalctl -u cloud-init.service
~# journalctl -u cloud-config.service
~# journalctl -u cloud-final.service


Ayrıca sorun çözme aşamalarında yardımcı olacak olan cloud-init servislerinin ne tür ayar dosyalarını meyadana getirdiğini "/run/cloud-init" dizini altında gözlemleyebilirsiniz.

Son tahlilde cloud-init servislerini kullanarak hemen hemen tüm cloud platformlarında çok kısa sürede istediğiniz konfigürasyonda işletim sistemi ayaklandırabilirisiz. İyi çalışmalar.

Yararlanılan kaynaklar:
[1] https://cloudinit.readthedocs.io/en/latest/



Hiç yorum yok:

Yorum Gönder