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.