Manage multiple server & client computers with SaltStack (finnish)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

148 lines
5.9 KiB

  1. Palvelinten hallinta - Harjoitus 5
  2. ==============
  3. *Disclaimer:*
  4. --------------
  5. Tämä harjoitus on tehty osana Haaga-Helian Tietojenkäsittelyn koulutusohjelman kurssia [Palvelinten hallinta (ICT4TN022, kevät 2018)](http://www.haaga-helia.fi/fi/opinto-opas/opintojaksokuvaukset/ICT4TN022). Kurssin pitäjänä toimii [Tero Karvinen](http://terokarvinen.com/), joka on määritellyt tämän harjoituksen tehtävänkuvaukset. Tehtävien vastaukset ovat Pekka Heleniuksen (allekirjoittanut) tuottamia.
  6. *SISÄLLYSLUETTELO*
  7. --------------
  8. - [b) Julkaise raportti MarkDownilla. Jos käytät GitHub:ia, se tekee muotoilun automaattisesti “.md”-päätteisiin dokumentteihin.](https://github.com/Fincer/central-management-of-multiple-servers/blob/master/h5.md#b-julkaise-raportti-markdownilla-jos-k%C3%A4yt%C3%A4t-githubia-se-tekee-muotoilun-automaattisesti-md-p%C3%A4%C3%A4tteisiin-dokumentteihin)
  9. - [c) Aja oma Salt-tila suoraa git-varastosta. Voit joko tehdä tilan alusta lähtien itse tai forkata sirottimen.](https://github.com/Fincer/central-management-of-multiple-servers/blob/master/h5.md#c-aja-oma-salt-tila-suoraa-git-varastosta-voit-joko-tehd%C3%A4-tilan-alusta-l%C3%A4htien-itse-tai-forkata-sirottimen)
  10. - [1) Git-varaston alustus](https://github.com/Fincer/central-management-of-multiple-servers/blob/master/h5.md#1-git-varaston-alustus)
  11. - [2) Salt-tila suoraan varastosta - skripti](https://github.com/Fincer/central-management-of-multiple-servers/blob/master/h5.md#2-salt-tila-suoraan-varastosta---skripti)
  12. b) Julkaise raportti MarkDownilla. Jos käytät GitHub:ia, se tekee muotoilun automaattisesti “.md”-päätteisiin dokumentteihin.
  13. --------------
  14. **Vastaus:**
  15. Kaikki raportit Git-varastoissa '[Central Management of Multiple Servers](https://github.com/Fincer/central-management-of-multiple-servers)' sekä '[Basics of a Linux Server](https://github.com/Fincer/basics-of-a-linux-server-school-course-)' tehty tähän mennessä MarkDownilla.
  16. **c)** Aja oma Salt-tila suoraa git-varastosta. Voit joko tehdä tilan alusta lähtien itse tai forkata [sirottimen](https://github.com/terokarvinen/sirotin).
  17. --------------
  18. **Vastaus:**
  19. ### 1) Git-varaston alustus
  20. Alustetaan uusi git-varasto, Ubuntu 18.04 LTS. Ajetaan normaalikäyttäjänä tietokoneella:
  21. ```
  22. sudo apt-get update && sudo apt-get -y install git
  23. mkdir -p ~/harjoitus_5
  24. ```
  25. Luodaan tässä vaiheessa uusi varasto esimerkiksi GitHub:iin. Uudella käyttäjällä aloitetaan uusi projekti (New project), jolle annetaan nimi (tässä tapauksessa salt_testrun).
  26. Kun uusi varasto on luotu, ladataan se paikalliselle koneelle:
  27. ```
  28. cd ~/harjoitus_5
  29. git clone https://github.com/Fincer/salt_testrun.git
  30. cd salt_testrun
  31. ```
  32. **HUOM!** Mikäli git-komento pyytää, on komennon tulostamien ohjeiden mukaan asetettava sähköpostiosoite ja käyttäjätunnus git:iä varten. Testikoneella nämä oli määritelty jo ennalta.
  33. Luodaan GitHub:sta ladattuun git-varastoon alikansiot scripts ja data:
  34. ```
  35. mkdir -p ~/harjoitus_5/salt_testrun/{scripts,data,images}
  36. ```
  37. Seuraavat tiedostot oli tehty harjoitusta varten jo ennalta. Kopioidaan valmiit tiedostot oikeisiin paikkoihin git-varastossa.
  38. **HUOM!** Mikäli muokkaat git-varastoon kuuluvia tiedostoja, tee tämä aina git-varaston (~kansion) sisällä!
  39. ```
  40. GIT_VARASTO=$HOME/harjoitus_5/salt_testrun
  41. cp ~/salt_testrun.sh ${GIT_VARASTO}/
  42. cp ~/salt_pillar_apache_sample.sh ${GIT_VARASTO}/scripts/
  43. cp ~/{sampleindex.html,sampleindex_functions.js} ${GIT_VARASTO}/data/
  44. touch ${GIT_VARASTO}/images/.gitignore
  45. unset GIT_VARASTO
  46. ```
  47. Lisätään tiedostot git-puuhun:
  48. ```
  49. cd ~/harjoitus_5/salt_testrun
  50. git add *
  51. git commit -m "Initial content"
  52. ```
  53. Output:
  54. ```
  55. [04/05/2018 04:14:37 - fincer: salt_testrun ]$ git commit -m "Initial content"
  56. [master 9cc3aab] Initial content
  57. 5 files changed, 1384 insertions(+)
  58. create mode 100755 data/sampleindex.html
  59. create mode 100755 data/sampleindex_functions.js
  60. create mode 100644 images/.gitignore
  61. create mode 100644 salt_testrun.sh
  62. create mode 100644 scripts/salt_pillar_apache_sample.sh
  63. ```
  64. **HUOM!** Tiedostojen poisto seuraavasti, esimerkki:
  65. ```
  66. [04/05/2018 04:13:50 - fincer: salt_testrun ]$ git rm -rf .gitignore
  67. rm '.gitignore/.gitignore'
  68. [04/05/2018 04:14:01 - fincer: salt_testrun ]$ git commit -m "Delete gitignore"
  69. [master fd87536] Delete gitignore
  70. 1 file changed, 1 deletion(-)
  71. delete mode 100644 .gitignore/.gitignore
  72. ```
  73. Julkaistaan muutokset GitHub:ssa:
  74. ```
  75. git push
  76. ```
  77. Output:
  78. ```
  79. [04/05/2018 04:19:40 - fincer: salt_testrun ]$ git push
  80. Counting objects: 12, done.
  81. Compressing objects: 100% (9/9), done.
  82. Writing objects: 100% (12/12), 14.38 KiB | 2.40 MiB/s, done.
  83. Total 12 (delta 0), reused 0 (delta 0)
  84. To https://github.com/Fincer/salt_testrun.git
  85. c72f9b7..1be1fb5 master -> master
  86. ```
  87. **HUOM!** Mikäli git-varasto käyttää useampaa haaraa, on _git push_ -komennossa määriteltävä, mihin haaraan muutokset kohdistetaan (esim. _git push origin master_)
  88. **HUOM!** Mikäli kyseessä on useamman tekijän git-varasto ja mikäli ei voida olla varmoja, onko git-puuta päivitetty jonkun toisen tekijän toimesta omien muutostöiden välissä, on suositeltavaa käyttää _git push_ -komennon edellä _git pull_ -komentoa. Yleensä git osaa varoittaa, mikäli välissä muutettuun varastoon ollaan tekemässä muutoksia, mutta hyvän työskentelykäytännön takia _git pull:ia_ on hyvä käyttää.
  89. ### 2) Salt-tila suoraan varastosta - skripti
  90. Seuraava komentosarja on testattu Ubuntu 18.04 LTS:ssä:
  91. ```
  92. wget https://raw.githubusercontent.com/Fincer/salt_testrun/master/salt_testrun.sh
  93. sudo bash ./salt_testrun.sh
  94. ```
  95. - asentaa yhdelle koneelle Salt Master/Minion -arkkitehtuurin (Minion-koneen ID on defaultMinion)
  96. - asentaa Apachen Salt-minionille (Salt-tiloja käyttäen)
  97. - konfiguroi esimerkkisivun Apachelle (Salt-tiloja käyttäen)
  98. - avaa esimerkkisivun käyttäjän 1000 (UID) oletusselaimessa
  99. Git-varasto löytyy kokonaisuudessaan seuraavasta osoitteesta:
  100. [Fincer - salt_testrun](https://github.com/Fincer/salt_testrun/tree/master)