
Tehtävät perustuvat Tero Karvisen Palvelinten hallinta -kurssiin.
Tehtävät edellyttävät, että salt-masterin sekä salt-minionin käyttöönotto on hoidettu valmiiksi.
Suoritin tehtävät pöytäkoneella joka on sekä herra että orja. Toisena orjana käytin HP Pavilion 14 -kannettavaa Xubuntu 16.04.3 -livetikulta.
b) Tee kahdella orjalla esimerkki, jossa orjat saavat eri muuttujan pilarista. Tarkista ‘pillars.items’, että kummalekin orjalle mene eri tieto. Tee jokin muu kuin tunnilla tehty sshd-esimerkki.
Loin /srv/salt/programs -kansion, jonne tein init.sls -tiedoston, jonne kirjoitin
programs: pkg.installed: - name: {{ pillar['pkgs']['useless'] }}
Lisäksi /srv/salt -kansioon top.sls, jonne
base: '*': - programs
Loin /srv/pillar -kansioon seuraavat tiedostot: kotikone.sls, kannettava.sls ja top.sls.
kotikone.sls:
pkgs: useless: sl
kannettava.sls:
pkgs: useless: cmatrix
Päivitys 22.4.: Vili Viita huomautti, että “useless”-kohtia ei kaiketi tarvitse, kun on kyse vain yhdestä paketista. Monia erilaisia paketteja listatessa useampi ID on selkyyden kannalta kuitenkin parempi.
top.sls:
base: 'kotikone': - kotikone 'kannettava': - kannettava
Nyt kun päivitän orjien tilan highstatella, asentuu pöytäkoneelleni sl-ohjelma, ja kannettavalle cmatrix-ohjelma.
$ sudo salt '*' state.highstate
Kannettavalle asentui cmatrix-ohjelma, mutta pöytäkoneellani olikin jo sl asennettuna. Poistin sl:n purge-komennolla ja ajoin tilan uudestaan.
$ sudo salt '*' state.highstate kotikone: ---------- ID: programs Function: pkg.installed Name: sl Result: True Comment: The following packages were installed/updated: sl Started: 12:51:10.970863 Duration: 5848.077 ms Changes: ---------- sl: ---------- new: 3.03-17build1 old: Summary for kotikone ------------ Succeeded: 1 (changed=1) Failed: 0 ------------ Total states run: 1
Kokeillaan vielä ohjelmia.
c) Tee kahdella orjalla esimerkki, jossa toinen orja saa muuttujan pilarista ja toinen käyttää oletusarvoa (pillar.get). Tee jokin muu kuin tunnilla tehty sshd-esimerkki.
Muokataan äskeistä esimerkkiä niin, että oletusohjelmana on figlet. Muokataan /srv/salt/programs/init.sls:
programs: pkg.installed: - name: {{ pillar['pkgs']['useless']('pkgs:useless', 'figlet') }}
muokataan /srv/pillar/top.sls -tiedostoa sellaiseksi, että kannettava ei saa arvoa asennettavalle ohjelmalle:
base: 'kotikone': - kotikone
Ajetaan tila
$ sudo salt '*' state.highstate
Saatiinkin virheilmoitus:
kotikone: Data failed to compile: ---------- Rendering SLS 'base:programs' failed: Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/salt/utils/templates.py", line 178, in render_tmpl output = render_str(tmplstr, context, tmplpath) File "/usr/lib/python2.7/dist-packages/salt/utils/templates.py", line 407, in render_jinja_tmpl log.debug("TmplStr: {0}".format(tmplstr)) UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 41: ordinal not in range(128) kannettava: Data failed to compile: ---------- Rendering SLS 'base:programs' failed: Jinja variable 'dict object' has no attribute 'pkgs'
Unohdinkin kokonaan käyttää pillar.get:iä /srv/salt/programs/init.sls -tiedostossa. Muokataan seuraavanlaiseksi:
programs: pkg.installed: - name: {{ salt['pillar.get']('pkgs:useless', 'figlet') }}
Ja kokeillaan uudestaan:
$ sudo salt '*' state.highstate
Ja sehän toimii:
kotikone: ---------- ID: programs Function: pkg.installed Name: sl Result: True Comment: Package sl is already installed Started: 13:03:25.466771 Duration: 405.257 ms Changes: Summary for kotikone ------------ Succeeded: 1 Failed: 0 ------------ Total states run: 1 kannettava: ---------- ID: programs Function: pkg.installed Name: figlet Result: True Comment: The following packages were installed/updated: figlet Started: 10:03:25.770325 Duration: 4715.331 ms Changes: ---------- figlet: ---------- new: 2.2.5-2 old: Summary for kannettava ------------ Succeeded: 1 (changed=1) Failed: 0 ------------ Total states run: 1
Testataan figletiä:
One Response
[…] https://veijonen.com/2018/04/22/harjoitus-4/ […]