2024. április 24., szerda

Gyorskeresés

Útvonal

Cikkek » Számtech rovat

SaltStack#2: Központosított telepítések

  • (f)
  • (p)
Írta: |

Három részes sorozatom második részében az "állapotokkal" ismerkedünk meg, és elkezdünk összerakni egy webkiszolgálóhoz szükséges alap rendszert.

[ ÚJ TESZT ]

LAMP és Wordpress

Rendszergazdák hello worldje kb. a LAMP telepítés. Sok tutorial van, nekem ez vált be: [link] Erre kerül rá általában egy alap webes alkalmazás, pl. egy wordpress. Nézzük meg, hogy ez hogyan meg saltból.

Külön választom három részre:
* csomagtelepítés
* beállítások
* wordpress passzintás

Hozzuk létre a következő mappát: /srv/salt/lamp/
/srv/salt/lamp/init.sls

lamp-packages:
pkg.installed:
- names:
- apache2
- apache2-mpm-prefork
- mysql-server
- mysql-client
- python-mysqldb
- python-mysql.connector
- php5
- php5-curl
- php5-mysql
- php-xml-parser
- php5-gd
- php5-mcrypt
- libapache2-mod-php5

Alap csomagok, illetve pár dolog, ami még kellett valamire nekem, valamint a saltos kapcsolathoz a pár python cucc. Azt megjegyzem, hogy a mysql-hez nem lesz root jelszó. Ezt is meg lehet oldani, hogy telepítésnél root jelszót kapjon és utána a salt ne veszítse el a hozzáférését. Azonban ez megint messzire mutatna, és nem férnék bele a keretbe.
/srv/salt/lamp/config.sls

a2enmod rewrite:
cmd.run
- unless: ls /etc/apache2/mods-enabled/rewrite.load

a2enmod ssl:
cmd.run

a2ensite default-ssl:
cmd.run

apache_token_prod:
file.sed:
- name: '/etc/apache2/conf.d/security'
- before: 'OS'
- after: 'Prod'
- limit: '^ServerTokens'

apache_signature_off:
file.sed:
- name: '/etc/apache2/conf.d/security'
- before: 'On'
- after: 'Off'
- limit: '^ServerSignature'

apache-restart:
cmd.run:
- name: 'service apache2 restart'

Pár apache modul engedélyezés és a végén egy restart.
/srv/salt/lamp/wordpress.sls

clear-www:
file.absent:
- name: /var/www/index.html

get_wordpress:
cmd.run:
- name: 'wget -O latest.tar.gz http://wordpress.org/latest.tar.gz && tar xzf latest.tar.gz'
- cwd: /tmp/
- unless: cat /var/www/wp-config.php

wp_user:
mysql_user.present:
- name: {{ pillar['wp']['dbname'] }}
- host: {{ pillar['wp']['dbhost'] }}
- password: {{ pillar['wp']['dbpass'] }}

wp_db:
mysql_database.present:
- name: {{ pillar['wp']['dbname'] }}

wp_grants:
mysql_grants.present:
- grant: ALL
- database: {{ pillar['wp']['dbname'] }}.*
- user: {{ pillar['wp']['dbuser'] }}

wp_config:
file.copy:
- source: /tmp/wordpress/wp-config-sample.php
- name: /tmp/wordpress/wp-config.php

wp_set_dbname:
file.sed:
- name: /tmp/wordpress/wp-config.php
- before: 'database_name_here'
- after: '{{ pillar['wp']['dbname'] }}'
- limit: 'DB_NAME'

wp_set_dbuser:
file.sed:
- name: /tmp/wordpress/wp-config.php
- before: 'username_here'
- after: '{{ pillar['wp']['dbuser'] }}'
- limit: 'DB_USER'

wp_set_dbpwd:
file.sed:
- name: /tmp/wordpress/wp-config.php
- before: 'password_here'
- after: '{{ pillar['wp']['dbpass'] }}'
- limit: 'DB_PASSWORD'

wp_copy:
cmd.run:
- name: 'cp -r /tmp/wordpress/* /var/www/'
- unless: cat /var/www/wp-config.php

A /tmp/ mappába kicsomagoljuk a legfrissebbet, majd elvégezzük a szükséges módosításokat. Másolunk és törlünk.

/srv/salt/top.sls -ben hozzáadjuk valamelyik géphez:

- lamp
- lamp.config
- lamp.wordpress

Pillar adatokat létrehozzuk:
/srv/pillar/wpweb.sls

wp:
dbname: wordpress
dbuser: wordpressuser
dbpass: password
dbhost: localhost

/srv/pillar/top.sls

'*':
- wpweb

sudo salt \* state.highstate test=True


Mivel teszt módban futtattam, így ne lepődjünk meg a sikertelen műveleteken, általában azt jelentik, hogy a fájl nem volt jelen. Rendesen futtatás után, már csak böngészőből kell befejezni a wp telepítést.

Nem tudom érzitek-e azt, hogy kezdenek felpörögni az események. Ugyanis, ha más gépnek más pillar fájlt adunk meg, akkor ott a sok egy sémára telepített webkiszolgáló wordpress-szel, és más user/db adatokkal. A dokumentálás is ki van pipálva, hiszen megvan a telepítés leírása és a hozzáférési adatok tárolása.

Ennyi lett volna mára, csináljatok otthon egy-két virtuális gépen saját honlapot! A csomagos és 'LAMP/wordpress'-es dolgokat beraktam egy tárolóba: [Git] A hozzászólásokban lehet bombázni, de jelzem, ez csak egy példa. Egy teljes rendszerhez még sok minden kell.

Legközelebb, és remélhetőleg még szeptember előtt munin telepítést nézünk meg, ami a korábbi raspberry/monitorozót készíti el, de sokkal jobban.

Azóta történt

Előzmények

Hirdetés

Copyright © 2000-2024 PROHARDVER Informatikai Kft.