Viikko 17

Playbook rakenteen luominen

Ansible -hakemiston alle luodaan hakemisto testing. Tämän alle luodaan hakemisto plays. Testing hakemistoon luodaan master.yml -tiedosto. Tiedoston tarkoitus on kutsua plays -hakemistossa olevia yml -tiedostoja.

Wiresharkin asennus:

– hosts: all

tasks:

– apt: name=wireshark update_cache=yes state=present

sudo: true

 

Google chromen asennus ei onnustunut suoraan apt-get toiminnolla, joten sen asennus poikkeaa tavallisesta:

– hosts: all

tasks:

– get_url: url=https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb dest=/etc/google.deb

– command: sudo dpkg -i /etc/google.deb

sudo: true

 

Master.yml -tiedostolla kutsutaan luotuja asennustiedostoja. Master.yml -tiedostossa on seuraavat rivit:

– hosts: all

– include: /etc/ansible/testing/plays/wireshark.yml

– include: /etc/ansible/testing/plays/chrome.yml

 

Tämän jälkeen teimme muutoksia kansio rakenteeseen lisäämällä testing alle common -hakemiston ja common alle tasks -hakemisto. Tasks hakemistoon luodaan main.yml -tiedosto. Nyt jos master.yml -tiedostoon kirjoittaa seuraavat rivit:

roles:

– common

 

niin tämä kutsuu automaattisesti tasks -hakemiston main.yml -tiedostoa.

 

Master.yml -tiedostoon tehtiin myös muutoksia:

 

– hosts: ryhma

gather_facts: yes

 

vars:

softwares:

”1”: ”wireshark”

”2”: ”sweeper”

 

vars_prompt:

– name: ”software_name”

prompt: >

Mita haluat asentaa?

  1. wireshark
  2. sweeper

 

default: ”1”

private: no

sudo: true

 

pre-tasks:

– name: muuttuja

set_fact: softwareinstall={{softwares[software_name] }}

 

roles:

– common

 

Main.yml -tiedoston sisältö:

 

 

– name: asenne ohjelma

apt: name{{softwareinstall}} state=latest

sudo: true

Nyt master.yml ei enään kutsu muita yml -tiedostoja vaan siinä määritellään asennettava ohjelma ja main.yml asentaa kyseisen ohjelman.

Viikot 15&16

Ansiblen konfigurointi

Aluksi lisättiin työaseman ip-osoite tiedostoon /etc/ansible/hosts.

Nyt muodostetaan SSH-yhteys palvelimelta työasemaan ja työasemalta palvelimelle.

Yhteyden muodostamisen jälkeen luotiin avainpari komennolla:

ssh-keygen -t dsa

Tämän jälkeen kopioidaan julkinen avain työasemalle komennolla:

ssh-copy-id

Nyt testataan toiminta ping -komennolla. Tämä ottaa yhteyttä kaikkiin osoitteisiin, jotka ovat määritelty /ect/ansible/hosts -tiedostossa. Ping -komento on ansible all -m ping.

Huom. Jos työasemalla ja palvelimella on erinimiset käyttäjät tulee tehdä seuraavat toimenpiteet:

/etc/ansible/hosts -tiedostoon lisätään rivit:

[ryhma]

työaseman ip-osoite

tämän jälkeen luodaan kansio ja tiedosto komennoilla:

sudo mkdir /etc/ansible/group_vars

sudo nano /etc/ansible/group_vars/ryhma

ryhma -tiedostoon lisätään seuraavat rivit:

ansible_ssh_user: käyttäjä

 

Nyt tarkastetaan, että käytettävät koneet ovat päällä komennolla:

ansible all -a ”/bin/echo hello”

Tämä ottaa yhteyden työasemaan Ansiblella.

 

Ad-hoc -komentojen testausta

ansible 192.168.x.y -m copy -a ”src=/etc/test dest=/tmp/test/ -kopioi kansion palvelimelta työasemalle.

ansible –ask-sudo-pass 192.168.x.y -a  ”/sbin/reboot” – käynnistää työaseman uudelleen.

 

Playbook testaus

Luodaan hakemisto ansiblen alle komennolla:

mkdir -p /etc/ansible/Plays. Kansioon tallennetaan luodut tehtävät.

 

Esimerkkitapauksia:

HelloWorld Play

– hosts: all

tasks:

– shell: echo ”Hello World!”

Run: ansible-playbook hello.yml

 

Kansion luonti

– hosts: all

tasks:

– file: path=/etc/testi state=directory mode=0755

sudo: true

Run: ansible-playbook –ask-sudo-pass file.yml

 

Uudellenkäynnistys

– hosts: all

tasks:

– name: reboot

command: /sbin/reboot

sudo: true

Run: ansible-playbook –ask-sudo-pass reboot.yml

 

Jos halutaan varmistaa, että järjestelmä kysyy aina sudo salasanaa Playbook -tiedostoja ajettaessa niin muutoksen voi tehdä /etc/ansible/ansible.cfg -tiedostoon. Tiedostosta poistetaan risuaita kohdasta ”ask_sudo_pass”. Tällöin ei Playbook komentoon tarvitse liittää –ask-sudo-pass osiota, mutta yml -tiedostosta täytyy löytyä sudo: true -rivi.

Viikko 14

Toteutusympäristö

Toteutusympäristön alustana toimii VirtualBox versio 5.0.16 r105871. Työasemien VirtualBoxin määrityksen menivät muuten oletuksena, paitsi verkkokortti, joka on molemmissa Bridged -adapteri. Aluksi asennettiin yksi Ubuntu-työasema ja yksi Ubuntu-palvelin. Käytettävä käyttöjärjestelmä on Ubuntu 14.04 LTS.

Virtuaalikoneiden konfigurointi

Asennuksen jälkeen varmistettiin, että virtuaalikoneiden linux-paketit ovat ajan tasalla.

Käytettävät komennot ovat:

sudo apt-get update

sudo apt-get upgrade

Työasemalle piti vielä asentaa VirtualBox laajennus, joka mahdollistaa mm. resoluution muutoksen.

Virtuaalikoneiden ollessa muuten kunnossa koneille asennettiin ssh komennolla:

sudo apt-get install ssh

Nyt asennetiin Ansible komennolla: sudo apt-get install ansible.

Palvelimen resoluutio muutettiin vielä seuraavilla komennoilla:

sudo nano /etc/default/grub

Seuraavat muutokset: GRUB_GFXMODE=1600×1200 (oletuksena GRUB_GFXMODE=640×480).

sudo update-grub

Kone käynnistetään uudelleen, joka jälkeen resoluutio on vaihtunut halutuksi.

Linux projekti ict4tn018-6 Projektisuunnitelma

Ansiblen asennus ja käyttöönotto

Projekti on tarkoitus tehdä projektityönä Linux projektina -kurssille. Projektissa on tarkoitus asentaa keskitetyn hallinnan ohjelmisto Ansible, konfiguroida se ja testata omia moduleita. Projektissa on käytössä yksi palvelin ja yksi työasema. Toteutusympäristönä on tarkoitus käyttää VirtualBox -ohjelmistoa.

Projektin tavoite

Tavoitteena on saada keskitetty hallinta toimimaan Ansiblen avulla ja onnistuneesti saada testattua eri moduleita.

 Aikataulu

Viikko 13 Kurssin aloitus. Ubuntu -palvelimen ja -työaseman asennus.

Viikko 14 Ansiblen asennus.

Viikko 15 Konfigurointi ja omien modulien tekeminen.

Viikko 16 Omien modulien testaus ja toiminnan varmentaminen.

Viikko 17 Projektin viimeistelyä ja toimivan version palautus.

Viikko 19 Oman projektin esittäminen.