Webcie-vm

From A-Eskwiki
Revision as of 15:48, 30 August 2018 by Timb (Talk | contribs)

Jump to: navigation, search

Nieuwe vm-webcie-debug aanmaken

Maak een nieuwe vm vm-webcie-debug aan. Kickstart de vm en highstate de vm met salt. Installeer mariadb met het volgende commando:

/usr/bin/mysql_secure_installation

Zet het rootwachtwoord en disalow root login remotely. Let op: de rootwachtwoorden van de databases van de vm-webcie/www en vm-webcie/www-debug moeten hetzelfde zijn!

Maak in de home van de root het bestandje .my.cnf aan (zet de rechten op 0600!) met de volgende content:

[client]
user = root
pass = root-database-wachtwoord

Maak ook de juiste databases aan (bv test_whoswho4, test_benamite of boeken. Denk eraan dat op een vm-webcie/www-machine er zowel de normal db als test_db moeten zijn). Kopieër nu de databases. Vergeet ook niet de mysql-database te kopieëren, daar staan de rechten van de verschillende gebruikers in. Maak eerst een dump op de oude vm:

mysqldump 'dbnaam' > 'dbnaam'.db

Kopieër het dumpbestand naar de nieuwe vm en laad de dump in op de nieuwe vm:

mysql 'dbnaam' < 'dbnaam'.db

Opzetten vm-www2

Deze instructies zijn bedoeld voor de WebCie. We gaan ervan uit dat je het WebCie-wachtwoord uit je hoofd kent.

Vraag de Sysop om een nieuwe vm (ik bedoel uiteraard container ;)) met subdomein (in dit geval: vm-www2.a-eskwadraat.nl) en wat mounts. (TODO!) Verkrijg roottoegang op de vm-www2.

In het begin heeft yum nog een update voor repositorygegevens nodig: doe yum clean all voordat je een ander yum-commando draait.

Installeer mariadb als op de vm-www-debug: yum install mariadb mariadb-server (let op: ivm backwards incompatibility willen we versie 5.5 voorlopig), systemctl enable mariadb, systemctl start mariadb en dan /usr/bin/mysql_secure_installation. Check even of inloggen nog werkt: mysql -u root -p.

Nu gaan we https://mariadb.com/kb/en/library/replication-overview/ replicatie] opzetten (master-master). We moeten hiervoor een random wachtwoord genereren, bewaar die goed! Open in een nieuwe terminal op de originele host, en pas de my.cnf aan:

[mysqld]
server-id=1
log-bin

Herstart mysqld/mariadb om de wijzigingen toe te passen. Log in als root op mysql en geef permissies: grant replication slave on *.* to repli@'vm-www2.a-eskwadraat.nl' identified by 'replipassword'; flush privileges;. Zet de tabellen op slot terwijl we de rest doen: flush tables with read lock;. Ten slotte moeten we wat gegevens bekomen: show master status\G. Log niet uit tot we klaar zijn, dan gaan de tabellen weer van het slot af.

In de andere terminal op vm-www2 gaan we ook de my.cnf aanpassen (ik heb de wijzigingen in /etc/my.cnf.d/webcie.cnf gezet):

[mysqld]

server-id=2

Herstart mariadb om de wijzigingen toe te passen. We moeten ook de volledige(!!!) databaasinhoud overzetten. (Dit is een van de redenen dat je een read lock hebt.) Doe een dump van de structuur op de originele host (in een nieuwe terminal) met mysqldump -u root -p --database mysql > mysql.mysql, gooi die over naar de nieuwe host scp mysql.mysql root@vm-www2:mysql.mysql en voer die in die nieuwe host uit mysql mysql -u root -p < mysql.mysql.

Log in op de nieuwe db met mysql -u root -p en stel replicatie in:

CHANGE MASTER TO
  MASTER_HOST='master.domain.com',
  MASTER_USER='replication_user',
  MASTER_PASSWORD='bigs3cret',
  MASTER_PORT=3306,
  MASTER_LOG_FILE='mariadb-bin.000096',
  MASTER_LOG_POS=568,
  MASTER_CONNECT_RETRY=10;

(De juiste waarden haal je uit de uitvoer van show master status\G op de originele host.) Vervolgens START SLAVE; SHOW SLAVE STATUS \G.

Als de uitvoer een beetje sense maakt, dan heb je succesvol een replicatie van de oude naar de nieuwe host opgezet. Doe UNLOCK TABLES; op de originele host en probeer wat aan te passen. Dit zou op de nieuwe host terecht moeten komen.