• No results found

Enterprise Linux - LAMP

N/A
N/A
Protected

Academic year: 2022

Share "Enterprise Linux - LAMP"

Copied!
6
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Enterprise Linux - LAMP

Student name: Kimberly De Clercq

Github repo: https://github.com/HoGentTIN/elnx-1920-sme-KimberlyDC/

Opdrachtomschrijving

LAMP = Linux, Apache, MySQL en PHP

We zullen Apache, MariaDB en Wordpress gebruiken als bouwstenen voor de website.

De installatie wordt volledig geautomatiseerd aan de hand van Vagrant en Ansible.

Test plan

1. Ga op uw hostsysteem naar de working directory van je github repository

C:\Users\Eigenaar\Desktop\HoGent\3TIN\Enterprise Linux\elnx-1920-sme-KimberlyDC>

2. Execute vagrant status

Er is één VM beschikbaar genaamd pu001 met de status not created. Indien de VM bestaat, verwijder deze eerst met vagrant destroy -f pu001

3. Execute vagrant up pu001

Het commando zou uitgevoerd moeten worden zonder errors (exit status 0)

4. Na vagrant up (wanneer de VM nog niet is gemaakt), zou de installatiepagina van Wordpress zichtbaar moeten zijn als u op uw hostsysteem surft naar https://192.0.2.10/wordpress/.

5. Log in on the server with vagrant ssh pu001 and run the acceptance tests. They should succeed: 15 tests, 0 failures

$ [kimberly@pu001 ~]$ sudo /vagrant/test/runbats.sh Running test /vagrant/test/lamp.bats

✓ The necessary packages should be installed ✓ The Apache service should be running

✓ The Apache service should be started at boot ✓ The MariaDB service should be running

✓ The MariaDB service should be started at boot ✓ The SELinux status should be ‘enforcing’

✓ Web traffic should pass through the firewall ✓ Mariadb should have a database for Wordpress ✓ The MariaDB user should have write

✓ The website should be accessible through HTTP ✓ The website should be accessible through HTTPS ✓ The certificate should not be the default one ✓ The Wordpress install page should be visible under http://192.0.2.10/wordpress/

✓ MariaDB should not have a test database ✓ MariaDB should not have anonymous users

(2)

6. Surf vanop je hostsysteem naar http://192.0.2.10. Dit zou moeten werken.

Je mag geen certificaat error krijgen, het certificaat is self-signed.

Procedure/Documentatie

Allereerst voegen we de rollen ansible-role-httpd-master, ansible-role-mariadb-master en ansible-role-wordpress-master van bertvv toe aan site.yml.

Wijzig in de folder /vagrant/ansible/roles/ansible-role-wordpress-master/meta/main.yml de dependency naar ansible-role-httpd-master.

In all.yml voegen we de role variabele rhbase_firewall_allow_services met http en https toe. Verder voegen we de role variabele rhbase_firewall_allow_ports toe, hierbij moet 8080/tcp en 53/udp

aanwezig zijn.

Tot slot voegen we de role variabele rhbase_firewall_interfaces toe, hieraan mogen de interfaces enp0s3 en enp0s8 meegegeven worden.

Onder host_vars maken we een nieuwe file genaamd pu001.yml. Alleereerst maken we met MariaDB een database genaamd wpdb1, met mariadb_root_password geven we het MariaDB root password weer.

Vervolgens voegen we een user toe met mariadb_users. Deze moet telkens de velden name, password en priv bevatten. Optionele velden zijn host en append_privs.

Vervolgens maken we een wordpress database genaamd wpdb1 met dezelfde user en hetzelfde password aangemaakt bij mariadb. Verder kunnen we een aantal plugins en themes installeren voor Wordpress.

Verander in het test script test/pu001/lamp.bats de variabelen naar de waarden vanuit jouw configuratiescript.

mariadb_root_password=root wordpress_database=wpdb1 wordpress_user=kimberly wordpress_password=letmein

Vervolgens genereren we een SSL (Secure Sockets Layer) certificaat. SSL certificaten maken gebruik van het https-protocol van de browser (via poort 443) wat de beveiligde verbinding tot stand brengt. We loggen in met ssh ssh kimberly@192.0.2.10 Eerst moeten we de vereiste software verkrijgen met het volgende commando sudo yum install mod_ssl openssl.

Nu kunnen we een self-signed certificaat genereren. Om de key te maken hebben we tevens rootrechten nodig. Dit kan je eenvoudig doen door sudo voor de commando's te plaatsen.

# Generate private key

[kimberly@pu001 ~]$ sudo openssl genrsa -out ca.key 2048

# Generate CSR

[kimberly@pu001 ~]$ sudo openssl req -new -key ca.key -out ca.csr

# Country Name: BE

(3)

# Organization Name: HoGent

# Organization Unit Name: .

# Common Name: Kimberly

# Email Address: .

# Challenge password: Admin2019

# Optional company name: .

# Generate self-signed key

[kimberly@pu001 ~]$ sudo openssl x509 -req -days 365 -in ca.csr -signkey ca.key - out ca.crt

Signature ok

subject=/C=BE/ST=West-Vlaanderen/O=HoGent/CN=Kimberly Getting Private key

# Copy the files to the correct locations

[kimberly@pu001 ~]$ sudo cp ca.crt /etc/pki/tls/certs

[kimberly@pu001 ~]$ sudo cp ca.key /etc/pki/tls/private/ca.key [kimberly@pu001 ~]$ sudo cp ca.csr /etc/pki/tls/private/ca.csr

Als u de bestanden hebt verplaatst en niet hebt gekopieerd, kunt u sudo restorecon -RvF /etc/pki gebruiken om de SELinux-context te corrigeren.

We maken een folder files aan onder ansible/roles/ansible-role-httpd-master/. Vervolgens

kopiëren we de benodigde bestanden naar de juiste locatie. Uw Vagrant / Ansible-project file is in uw virtuele machine onder /vagrant/ gemonteerd. We kopiëren alle certificaat files naar de directory ansible/. Hierin kopiëren we het httpd_ssl_certificate_file en het httpd_ssl_certificate_key_file als volgt:

[kimberly@pu001 ~]$ sudo cp ca.crt /vagrant/ansible/roles/ansible-role-httpd- master/files

[kimberly@pu001 ~]$ sudo cp ca.key /vagrant/ansible/roles/ansible-role-httpd- master/files

Daarna moeten we het Apache SSL configuratie bestand updaten. Gebruik sudo vi /etc/httpd/conf.d/ssl.conf om de certificate files te wijzigen.

Wijzig de paden om overeen te komen waar het key bestand is opgeslagen. Wijzig de certificate files naar het onderstaande:

SSLCertificateFile: /vagrant/ansible/roles/ansible-role-httpd-master/files/ca.crt SSLCertificateKeyFile:/vagrant/ansible/roles/ansible-role-httpd-

master/files/ca.key

# Quit en save het bestand (esc + :wq!)

[kimberly@pu001 ~]$ sudo service httpd restart

Gebruik cat /etc/httpd/conf.d/ssl.conf om uw wijzigingen te bekijken.

Het ca.csr bevindt zich in de volgende folder:

(4)

[kimberly@pu001 ~]$ cd /vagrant/ansible

[kimberly@pu001 ansible]$ cat /etc/pki/tls/private/ca.csr

We passen de file site.yml om de variabele httpd_scripting voor httpd in te stellen. Deze stellen we in onder vars met 'php' meegegeven.

In pu001.yml U kunt de poortnummers 443 en 80 meegeven aan httpd_listen_ssl en aan httpd_listen.

Dit hoeft u niet toe te voegen, want dit zijn de default poortnummers.

Verder geven we aan httpd_ssl_certificate_file de naam van het certificate bestand mee, dit is default localhost.crt. Hieraan geven we dus ca.crt mee. httpd_ssl_certificate_key_file is de naam van het certificaat key bestand, dit is default localhost.key. Dit veranderen we naar ca.key.

Test rapport

1. Ga op uw hostsysteem naar de working directory van je github repository

C:\Users\Eigenaar\Desktop\HoGent\3TIN\Enterprise Linux\elnx-1920-sme-KimberlyDC>

2. Execute vagrant status

Er is één VM beschikbaar genaamd pu001 met de status not created. Indien de VM bestaat, verwijder deze eerst met vagrant destroy -f pu001

3. Execute vagrant up pu001

Het commando wordt uitgevoerd worden zonder errors (exit status 0)

4. Na vagrant up (wanneer de VM nog niet is gemaakt), zou de installatiepagina van Wordpress zichtbaar moeten zijn.

Surf vanop het hostsysteem naar https://192.0.2.10/wordpress/.

5. Log in on the server with vagrant ssh pu001 and run the acceptance tests.

(5)

$ [kimberly@pu001 ~]$ sudo /vagrant/test/runbats.sh Running test /vagrant/test/pu001/lamp.bats

✓ The necessary packages should be installed

✓ The Apache service should be running

✓ The Apache service should be started at boot

✓ The MariaDB service should be running

✓ The MariaDB service should be started at boot

✓ The SELinux status should be ‘enforcing’

✓ Web traffic should pass through the firewall

✓ Mariadb should have a database for Wordpress

✓ The MariaDB user should have write

✓ The website should be accessible through HTTP

✓ The website should be accessible through HTTPS

✓ The certificate should not be the default one

✓ The Wordpress install page should be visible under http://192.0.2.10/wordpress/

✓ MariaDB should not have a test database

✓ MariaDB should not have anonymous users 15 tests, 0 failures

6. Surf vanop je hostsysteem naar http://192.0.2.10. Je mag hierbij geen certificaaterror krijgen, het certificaat is self-signed.

We zien de test pagina van Apache HTTP-server.

Resources

MariaDB role: https://github.com/bertvv/ansible-role-mariadb

Test playbook MariaDB: https://github.com/bertvv/ansible-role-mariadb/blob/docker-tests/test.yml httpd role: https://github.com/bertvv/ansible-role-httpd

Test playbook httpd: https://github.com/bertvv/ansible-role-httpd/blob/vagrant-tests/test.yml Wordpress role: https://github.com/bertvv/ansible-role-wordpress

Test playbook wordpress: https://github.com/bertvv/ansible-role-wordpress/blob/vagrant- tests/test.yml

IBM-Cloud roles: https://github.com/IBM-Cloud/terraform-provider-ibm/tree/master/examples/ibm- ansible-samples/ibm_ansible_wordpress/roles

(6)

Self-signed certificaat: https://wiki.centos.org/HowTos/Https

Ansible Roles: https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html Copy files to remote locations: https://docs.ansible.com/ansible/latest/modules/copy_module.html Restart httpd service: https://www.cyberciti.biz/faq/restart-httpd/

Working with playbooks: https://docs.ansible.com/ansible/latest/user_guide/playbooks.html Ansible Playbook: https://docs.ansible.com/ansible/latest/cli/ansible-playbook.html

Referenties

GERELATEERDE DOCUMENTEN

Je kunt de Lay-out Pagina instellingen gebruiken door aan te geven welke elementen (menu's, widgets etc.) je per pagina standaard wilt tonen (alle elementen uit, geeft een

Wij werken ons eigen thema dat Linsey zelf heeft geprogrammeerd (en blijft bijwerken).. Dit thema is zo uitgebreid in opties — lettertypes, kleuren,

Voor het dupliceren van een nieuw bericht: zoek een soortgelijk bericht en klik deze open.. Klik in het rechtermenu op: “Copy to a

19 (21) Les 04 Elke organisatie moet er immers voor zorgen dat de kennis en kunde die nodig zijn om het systeem met de tijd mee te kunnen laten groeien, binnen de eigen

De database heb je namelijk nodig voor het maken van back-ups en dadelijk ook wanneer de site moet worden overgezet naar de server van de klant..

Maak ook voor je eigen website een nulmeting (vergeet niet hide my site even uit te zetten) en test deze volledig door.. Gebruik Greenshot (windows) om schermafdrukken van de

√ Je weet welke plugins handig zijn voor jouw type website en kunt ze in WordPress installeren.. √ Je kunt je website optimaliseren voor bezoekers en

Als er geen ontwerpen worden verstrekt door de partner gebruikt White Label Webdesign de standaard WooCommerce- ontwerpen voor deze pagina's. • Stelt geen standard betalings