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.

sl:

cmatrix:

 

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ä:

 


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.