Palvelinten hallinta saltilla

Asenna Salt Master ja Slave pull-arkkitehtuurilla (eli master on server). Voit laittaa herran ja orjan myös samalle koneelle. Kokeile suorittamalla salt:illa komentoja etänä.

Asensin nämä kahdelle eri koneelle, molemmat CentOS 7. Muokkasin orjalla tiedostoa /etc/salt/minion ja laitoin sinne nämä rivit:

master: saltmaster1
id: TS3Server

Varmistin että herralla pyörii salt-master service ja käynnistin orjalla salt-minion servicen. Hyväksyin orjan avaimen herralla.

sudo salt-key -A
y

Kokeilin toimivuutta skriptillä joka päivittää CentOS käyttöjärjestelmälliset koneet.

#!/bin/bash
echo “Updating CentOS servers.”
echo “Please wait…”
salt -G ‘os:CentOS’ cmd.run “yum update -y”

Orja päivittyi onnistuneesti.

Kerää laitetietoja koneilta saltin grains-mekanismilla.

Hain orjan tietoja grains.items komennolla.

salt ‘minion1’ grains.items

Oikeaa elämää. Säädä Saltilla jotain pientä, mutta oikeaa esimerkiksi omalta koneeltasi tai omalta virtuaalipalvelimelta. (Kannattaa kokeilla Saltia oikeassa elämässä, mutta jos se ei onnistu, rakenna jotain oikeaa konettasi vastaava virtuaaliympäristö ja tee asetus siinä).

Loin tilan joka luo crontabin minun TeamSpeak palvelimelleni, joka pyrkii käynnistämään teamspeak palvelun viiden minuutin välein. Komento ei tee mitään jos palvelu on jo päällä. Nimesin tiedoston ts3cronjob.sls:ksi.

/home/ts3/tschk.sh > /dev/null 2>&1:
cron.present:
– user: ts3
– minute: ‘*/5’

Ajoin tilan orjakoneelle ja se toimi hyvin.

salt ‘TS3Server’ state.apply ts3cronjob

Lisäsin tämän myös top.sls tiedostoon.

base:
‘TS3Server’:
– ts3cronjob

Lähteet:

https://docs.saltstack.com/en/latest/ref/states/all/salt.states.cron.html

Linuxin keskitetty hallinta Homework1

a) Puppet-moduli, joka käyttää vähintään kahta eri resurssia (esim. package ja file).
c) Vapaaehtoinen lisätehtävä: Tee moduli, joka tekee jonkin oikeassa elämässä hyödyllisen asian, vaikkapa asentaa ja konfiguroi jonkin ohjelman haluamallasi tavalla.

Tarkoituksena on tehdä nginx varten moduuli, joka varmistaa nginx asennuksen ja konfiguraatiotiedostot.

Loin /etc/puppet/modules/ kansioon nginx kansion johon tulee manifests/init.pp ja templates/nginx.conf tiedostot. Aloitin tiedoston “class nginx { … }” palikalla.

Continue reading “Linuxin keskitetty hallinta Homework1”

Linux Palvelimet kurssi Homework5

a) Ota käyttöön oma virtuaalipalvelin (VPS).

Otin digitalocean VPS käyttöön. Valitsin 10€/kk maksavan palvelimen ja syötin sivulle julkisen avaimeni, ettei DigitalOcean:in tarvitse lähettää minulle epäturvallisesti root käyttäjän salasanaa.

b) Laita domain-nimi osoittamaan virtuaalipalvelimeesi

Ostin eeromikkonen.com ja osoitin sen ostamalleni virtuaalipalvelimelleni. Tein tämän luomalla A tietueen namecheapin dns asetuksista @ ja www hosteille ja osoitin sen virtuaalipalvelimeni IP osoitteeseen.

c) Asenna weppipalvelin virtuaalipalvelimeesi

Konfiguroin palvelimelle nginx weppisoftan käyttämällä Ansiblen konfiguraationhallintaa. Erillinen dokumentaationi Ansiblesta löytyy täältä: http://eeromikkonen.com/blog/2017/ansible-configuration-management-deploying-web-servers-with-ease/

d vapaaehtoinen) Tee weppisivu omalle virtuaalipalvelimellesi käyttäen Apachen VirtualHost-asetusta.

Tein weppipalvelimen käyttäen nginx ohjelmistoa, joten käytin sen omaa vastaavaa.

Linux Palvelimet kurssi Homework4

a) Asenna alusta lähtien LAMP. (Linux voi olla asennettu valmiiksi tai Live-USB).

Asensin virtuaalikoneelle LAMP alustan komennolla: “sudo apt-get update && sudo apt-get upgrade && sudo apt-get install apache2 mysql-server mysql-client libapache2-mod-php

Tämä lisäksi enabloin käyttäjähakemistojen nettisivut “sudo a2enmod userdir” komennolla. Loin käyttäjähakemistoihin php sivut komennolla “mkdir ~/public_html && touch ~/public_html/index.php“. Enabloin php’n apachen asetuksista “sudo vim /etc/apache2/mods-available/php7.0.conf

Continue reading “Linux Palvelimet kurssi Homework4”

Linux Palvelimet kurssi Homework3

Asenna apache2 weppipalvelin. Lataa jokin sivu omalta palvelimeltasi, vaikka testisivu.

Asensin apachen yhdelle CentOS virtuaaliserverilleni komennolla “yum install httpd“. Käynnistin apachen komennolla “service apache start”

Selasin selaimellani palvelimeni ip osoitteeseen ja sain testisivun ladattua.

Etsi sivulatauksesta syntynyt lokirivi.

192.168.1.69 – – [05/Feb/2017:16:13:50 +0200] “GET /noindex/css/fonts/Bold/OpenSans-Bold.ttf HTTP/1.1” 404 238 “http://192.168.1.139/noindex/css/open-sans.css” “Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0”

Linux Palvelimet kurssi Homework2

a) Aiheuta lokiin kaksi eri tapahtumaa: yksi esimerkki onnistuneesta ja yksi esimerkki epäonnistuneesta tai kielletystä toimenpiteestä. Analysoi rivit yksityiskohtaisesti.

Kokeilin luoda tapahtumia sudo komennolla.

Onnistunut toimenpide: “Jan 29 22:55:39 minion1 sudo:  sucker : TTY=pts/1 ; PWD=/home/sucker ; USER=root ; COMMAND=/bin/tail /var/log/secure”

Continue reading “Linux Palvelimet kurssi Homework2”

Linux Palvelimet kurssi Homework1

A: Tee oma Linux-livetikku. Kokeile sitä jossain muussa kuin koulun koneessa.

Torrenttasin CentOS-7-x86_64_LiveCD.iso.iso levykuvan. (https://centos.org) Tein livetikun Linux koneella joten tikun luominen onnistui komennolla “sudo dd if=/home/eero/Downloads/CentOS-7-x86_64_LiveCD.iso of=/dev/sdb bs=2048” jossa sdb on USB tikkuni.

Laitoin USB tikun läppäriini ja boottasin siihen.

Continue reading “Linux Palvelimet kurssi Homework1”