Configuration Management Systems – Palvelinten Hallinta – Spring 2021 – h7 Oma moduli

Harjoitus on osa kurssia Palvelinten hallinta. https://terokarvinen.com/2021/configuration-management-systems-palvelinten-hallinta-ict4tn022-spring-2021/

h7 Oma moduli

Tavoitteenani oli rakentaa moduli, joka asentaisi LAMP-stackin, SSH:n ja UFW:n sekä konfiguroisi niitä hieman. Käytin orja-alustana Xubuntu 18.04 käyttöjärjestelmää.

Tehtävän tiedostot löytyvät Githubista: https://github.com/ottohan/LAMP

Koko tehtävän olisi voinut ahtaa yhteen moduuliin, mutta halusin, että moduulit ovat paremmin muokattavissa, joten tein niistä omat kansiot ja muokkasin top.sls ajamaan nämä tilat kaikilla minioneilla.

Apache

Aloitin tehtävän moduulilla, joka asentaa Apachen ja muokkaa sen oletussivun HelloWorldiksi, joka löytyy /salt/apache/www-kansiosta. Tätä on helppo halutessaan muokata minkälaiseksi vain, lisää vain salt/apache/www -kansioon uuden index.html tiedoston. Moduuliin oli hyvä saada mukaan myös userdir-aktivointi, jotta tietokoneen käyttäjät voi julkaista kotihakemistostaan haluamaansa kontenttia. Tämä jälkeen Apache käynnistyy uudelleen.

init.sls

apache2:
  pkg.installed

/var/www/html/index.html:
  file.managed:
    - source: salt://apache/www/index.html

/etc/apache2/mods-enabled/userdir.conf:
  file.symlink:
    - target: /etc/apache2/mods-available/userdir.conf

/etc/apache2/mods-enabled/userdir.load:
  file.symlink:
    - target: /etc/apache2/mods-available/userdir.load

apache2restart:
  service.running:
    - name: apache2
    - watch:
      - file: /etc/apache2/mods-enabled/userdir.conf
      - file: /etc/apache2/mods-enabled/userdir.load

Mariadb

Yksiselitteinen moduuli, asentaa Mariadb:n.

init.sls

mariadb:
  pkg.installed:
    - pkgs:
      - mariadb-client
      - mariadb-server

PHP

Moduuli asentaa PHPn ja lisäosan Mariadb:tä varten. Se myös määrittelee PHP:n asetukset, joita voi halutessaan muokata /php/conf kansiosta. Tämän jälkeen se käynnistää Apachen uudestaan, jotta asetukset tulevat voimaan.

init.sls

php:
  pkg.installed:
    - pkgs:
      - libapache2-mod-php
      - php-mysql

/etc/apache2/mods-available/php7.2.conf:
  file.managed:
    - source: salt://php/conf/php.conf

apache2phpservices:
  service.running:
    - name: apache2
    - watch:
      - file: /etc/apache2/mods-available/php7.2.conf

SSH

Moduuli asentaa SSH:n.

ssh:
  pkg.installed:
    - pkgs:
      - openssh-client
      - openssh-server

UFW

Moduuli asentaa UFW:n, ja muokkaa palomuurin asetuksia, avaten portit 22 ja 80. Tämän jälkeen se käynnistää uudelleen palomuurin, jotta asetukset tulevat voimaan.

init.sls

ufw:
  pkg.installed:
    - pkgs:
      - ufw

/etc/ufw/user6.rules:
  file.managed:
    - source: salt://ufw/conf/default-user6.rules

/etc/ufw/user.rules:
  file.managed:
    - source: salt://ufw/conf/default-user.rules

/etc/ufw/ufw.conf:
  file.managed:
    - source: salt://ufw/conf/default-ufw.conf

ufwservices:
  service.running:
    - name: ufw
    - watch:
      - file: /etc/ufw/user6.rules
      - file: /etc/ufw/user.rules
      - file: /etc/ufw/ufw.conf

top.sls

Ajaa kaikki aikaisemmat moduulit kaikilla minioneilla sudo salt '*' state.apply komennolla.

base:
  '*':
    - apache
    - php
    - mariadb
    - ssh
    - ufw

sudo salt '*' state.apply

Tilat ajettiin ja lopputulos näytti vihreää, localhost oli myös vaihtunut HelloWorldiksi.

Loppumietteitä

Aiheen keksimisessä lopputyöhön minulla oli aluksi ongelmia. Halusin saada kumminkin jonkinlaisen hyödyllisen moduulin itselleni, joten päädyin LAMP-stackin ja SSH:n asentamiseen. Projektia hieman tehtyäni ja google-fu:ta käyttäessäni huomasin, että aiemmissa kurssin toteutuksissa tämä on tehty läksynä, mutta en ehtinyt aloittaa uutta projektia, joten päädyin tähän ratkaisuun. Kurssin ollessa etäopiskelua, en ehkä saanut ihan samanlaista kokemusta, kuin lähiopetuksessa. Olisin ehkä kaivannut muiden opiskelijoiden ideoita ja keskustelua kurssin toteutuksesta. Etäopetus oli silti loistavaa ja kurssin aikana opin erittäin paljon. Lopputyö vain jäi hieman luurangoksi ja olisin halunnut tehdä siitä haastavamman.

Ideoin, että olisin tehnyt Saltilla Mariadb:seen esimerkki tietokannan ja lisännyt WordPressin asennuksen koneille. Näiden asennus ei kuitenkaan mennyt ihan niinkuin Strömsössä, joten päätin jättää lopputyön siihen vaiheeseen, että tilat ajetaan onnistuneesti.

Lähteet:

https://terokarvinen.com/2018/pkg-file-service-control-daemons-with-salt-change-ssh-server-port/

https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-ubuntu-18-04

https://www.linode.com/docs/guides/use-salt-states-to-configure-a-lamp-stack-on-a-minion/

https://terokarvinen.com/2018/apache-user-homepages-automatically-salt-package-file-service-example/

https://www.bloglinux.me/node/15

Kurssin muut tehtävät:

h1: https://ottohanninen.wordpress.com/2021/04/07/configuration-management-systems-palvelinten-hallinta-spring-2021-h1/

h2: https://ottohanninen.wordpress.com/2021/04/14/configuration-management-systems-palvelinten-hallinta-spring-2021-h2-package-file-service/

h3: https://github.com/ottohan/harjoitus3

h4: https://ottohanninen.wordpress.com/2021/04/28/palvelinten-hallinta-h4-uusi-komento/

h5: https://ottohanninen.wordpress.com/2021/05/05/configuration-management-systems-palvelinten-hallinta-spring-2021-h5-aikajana/

h6: https://ottohanninen.wordpress.com/2021/05/12/h6/

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Create your website with WordPress.com
Get started
%d bloggers like this: