Natrag na blog

Uvod u pripremu poslužitelja uz CloudInit

Uvod u pripremu poslužitelja uz CloudInit

Ovaj mjesec najavili smo vrlo uzbudljivo partnerstvo s Canonicalom, tvorcima Ubuntua. Iznad svega, glavni element u ovom partnerstvu je uvođenje potpune CloudInit podrške između CloudSigma oblaka i Ubuntua.

Uvod u CloudInit

Ako niste upoznati s CloudInitom, to je industrijski standard za pokretanje poslužitelja u oblaku. Da pojasnimo, ako koristite jednostavan DSL moguće je jednostavno izvršiti zadatke pri prvom pokretanju. Također vrijedi istaknuti da CloudInit nije ograničen na Ubuntu. Danas ćete pronaći CloudInit podršku u većini modernih Linux distribucija (ali podržani oblaci će se razlikovati).

Prije nego što započnemo s CloudInitom, važno je razumjeti gdje se CloudInit uklapa u ekosustav za provizioniranje. Iako je moguće pokrenuti CloudInit kao samostalni sustav za provizioniranje, puno je češće koristiti ga u kombinaciji s drugim sustavom za provizioniranje, kao što su Ansible, Chef, Puppet ili Salt. U tom slučaju, jednostavno biste koristili CloudInit kako biste svoj novi poslužitelj doveli u stanje u kojem sustav za provizioniranje može preuzeti upravljanje. Osobno, često koristim CloudInit u kombinaciji s Ansibleom.

Korištenje CloudInita na CloudSigmi

Korištenje CloudInita na CloudSigmi vrlo je jednostavno.

Kako biste koristili CloudInit na Ubuntu 14.04 poslužitelju, poduzmite sljedeće korake:

    • Klonirajte pogon “Ubuntu 14.04 Cloud Image” s tržišta (trenutačno jedini potpuno podržani pogon s CloudInitom). Obavezno promijenite veličinu kloniranog pogona na željenu veličinu i on će automatski proširiti datotečni sustav pri prvom pokretanju.
    • Izradite novi poslužitelj.
    • Nakon što je poslužitelj izrađen, vidjet ćete gumb CloudInit ispod statusa poslužitelja.

CloudInit

    • Kada kliknete na ovaj gumb, pojavit će se sljedeći dijaloški okvir.

CloudInit_activate

  • Jednostavno ovdje zalijepite svoje CloudInit podatke i pritisnite ‘Aktiviraj’.
  • Možete pokrenuti svoj poslužitelj i skripta će se izvršiti pri prvom pokretanju.

Instalirajte SSH ključ(eve) pomoću CloudInita

Sada kada znate kako koristiti CloudInit na našem oblaku, iskoristimo ovo novostečeno znanje kako bismo instalirali dva SSH ključa. Dva fiktivna javna SSH ključa koja ćemo koristiti su ‘ssh-rsa AAA[…] user1@host‘ i ‘ssh-rsa AAA[…] user2@host‘. (Kako biste saznali više o generiranju SSH ključeva, pogledajte ovu stranicu na Githubu.)

Na Ubuntu Cloud Images, zadano korisničko ime je ‘ubuntu’. Stoga će ključevi biti instalirani na taj korisnički račun.

Konfiguracija CloudInita za ovo izgledala bi ovako:

[ruby]
#cloud-config
ssh_authorized_keys:
- ssh-rsa AAA[...] user1@host
- ssh-rsa AAA[...] user2@host
[/ruby]

Imajte na umu da su razmaci važni. Postoje dva razmaka ispred ‘-‘. Ako stavite samo jedan, poslužitelj ga možda neće pročitati.

Nakon što spremite konfiguraciju CloudInita i pokrenete poslužitelj, trebali biste se moći spojiti putem SSH-a na poslužitelj koristeći korisnika ‘ubuntu’:

[bash light="true"]
$ ssh ubuntu@aaa.bbb.ccc.ddd
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-36-generic x86_64)

* Documentation: https://help.ubuntu.com/

System information as of Sun Oct 19 21:51:54 UTC 2014

System load: 0.0 Users logged in: 0
Usage of /: 77.4% of 39.34GB IP address for eth0: aaa.bbb.ccc.ddd
Memory usage: 26%
Swap usage: 0%
Processes: 113

Graph this data and manage this system at:
https://landscape.canonical.com/

Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud

0 packages can be updated.
0 updates are security updates.
[...]
ubuntu@myserver:~$
[/bash]

Instalirajte ažuriranja sustava pomoću CloudInita

Još jedna vrlo korisna stvar koju možete lako postići s CloudInitom jest pokretanje ažuriranja sustava pri prvom pokretanju. Iako često osvježavamo naše slike diskova, ipak je dobra ideja poduzeti dodatne mjere opreza kako biste osigurali da su vaši sustavi ažurni.

Za instalaciju ažuriranja sustava pri prvom pokretanju, dodajte sljedeće:

[ruby]
#cloud-config
apt_update: true
apt_upgrade: true
[/ruby]

Također možete primijetiti da postoji slična opcija pod nazivom ‘package_update,’ što je distribucijski neutralan alias za ‘apt_update’ na Ubuntuu.

Također, ‘apt_update’ bit će postavljen na true prema zadanim postavkama ako je ‘packages’ (ispod) postavljen, ali dodao sam ga iznad kako bi bio eksplicitniji.

Instalirajte pakete pomoću CloudInita

Jedan temeljni dio za pripremu sustava (bootstrapping) jest mogućnost instalacije paketa pri pokretanju. Srećom, CloudInit i to olakšava. Sve što trebamo učiniti jest navesti popis paketa koje želimo instalirati pod ‘packages.’ Na primjer, ako želimo instalirati ‘python-pip,’ ‘fail2ban’ i ‘vim’, to bi izgledalo ovako:

[ruby]
#cloud-config
packages:
- python-pip
- fail2ban
- vim
[/ruby]

Ponovno, imajte na umu da su razmaci važni. Postoje dva razmaka ispred ‘-‘.

Postavljanje naziva računala (hostname) pomoću CloudInita

Kada pripremate novi poslužitelj, možda ćete također htjeti postaviti njegov naziv računala (hostname).

[ruby]
#cloud-config
hostname: mynode
fqdn: mynode.example.com
manage_etc_hosts: true
[/ruby]

Pokretanje naredbi pri prvom pokretanju pomoću CloudInita

Pod pretpostavkom da radite nešto sofisticiranije sa svojim poslužiteljima, velika je vjerojatnost da imate neku naredbu koju trebate pokrenuti pri prvom pokretanju.

Tu na scenu stupaju ‘runcmd’ i ‘bootcmd’. Obje ove opcije omogućuju vam pokretanje naredbi pri prvom pokretanju. Razlika je u tome što se ‘bootcmd’ izvršava ranije u procesu pokretanja od ‘runcmd.’

Da biste koristili bilo koju od ovih naredbi, dodajte sljedeće u svoj CloudInit:

[ruby]
#cloud-config
runcmd:
- ls -l /root
- [wget, "https://news.ycombinator.com", -O, /tmp/index.html]
[/ruby]

Korištenje CloudInita s upraviteljem konfiguracije

Na kraju, ako ste napredniji korisnik oblaka, najvjerojatnije koristite neki upravitelj konfiguracije. Srećom, CloudInit dolazi pripremljen za to. Međutim, to je prilično složena tema za pokriti, s obzirom na mnoge varijable.

Evo nekoliko primjera koji bi vas trebali usmjeriti u pravom smjeru:

Kako povezati više elemenata

Za one koji nisu upoznati s datotekama u YAML stilu, možda neće biti očito kako povezati više CloudInit elemenata. Međutim, to je jednostavno. U prvom retku trebate ‘#cloud-config‘. Nakon toga jednostavno dodate svoju konfiguraciju.

Na primjer, kombiniranje svih gore navedenih primjera u jednu konfiguraciju izgledalo bi ovako:

[ruby]
#cloud-config
ssh_authorized_keys:
- ssh-rsa AAA[...] user1@host
- ssh-rsa AAA[...] user2@host
hostname: mynode
fqdn: mynode.example.com
manage_etc_hosts: true
apt_update: true
apt_upgrade: true
packages:
- python-pip
- fail2ban
- vim
runcmd:
- ls -l /root
- [wget, "https://news.ycombinator.com", -O, /tmp/index.html]
[/ruby]

Dodatni resursi

U ovom smo članku doista samo zagrebali po površini onoga što CloudInit može učiniti. Postoji mnoštvo drugih stvari koje također možete učiniti kako biste naučili, kao što su stvaranje korisnika i grupa, pisanje datoteka na disk i pozivanje URL-ova po završetku (za obavještavanje drugih sustava).

Ako želite saznati više o CloudInitu, preporučujem sljedeće izvore:

author

Viktor Petersson

Autor · CloudSigma

Preslav Dobrev je kreativni dizajner u CloudSigma, usredotočen na dosljedan poslovni identitet korištenjem tradicionalnih i inovativnih marketinških kanala. Vješt je u spajanju umjetničke vizije sa strateškim marketingom kako bi stvorio dojmljive brendirane priče.

Komentari

Još nema komentara. Budite prvi.