Uppgiftsbanken
Uppgifter, övningar och laborationer i HTML, CSS, JavaScript, PHP, SQL för att du skall få öva dig i webbprogrammering och webbutveckling.
Uppgifter, övningar och laborationer i HTML, CSS, JavaScript, PHP, SQL för att du skall få öva dig i webbprogrammering och webbutveckling.
Ni ska nu skapa playbooks för att sätta upp alla delar av microbloggen; databasen, applikationen på två servrar och en load balancer. När vi bara hade en server använde vi Nginx som en reverse proxy för att skicka vidare requests till Flask appen. Nu ska vi använda Nginx som en load balancer istället.
Efter kraven finns lite hjälp för att lösa er Playbooks.
I Ansible, i era playbooks använd host namnet database
för installationen av databasen, appserver
för era servrar med Microblog och loadbalancer
för Nginx.
Ni kan använda ansible-lint
för att få tips på hur ni bör skriva er Ansible kod. Ni kan använda -x <list of rules>
för att exkludera regler.
Tips Skapa en roll som bara installerar Docker. Den kan ni återanvända för appserver
och database
.
När ni startar MySQL containern kan ni inte använda hashade lösenord, MySQL klara inte av det. De måste vara i plain-text.
När ni startar containern skicka också med - MYSQL_ROOT_PASSWORD=<password>
som environment variabel, ni kommer använda det längre fram.
När ni ska koppla Flask appen till databasen behöver ni IP addressen för databas servern, ni kan inte längre använda er av Dockers länkning för att de körs på två olika maskiner. I ansible kan ni använda {{ groups.database[0] }}
för att få ut IP för databas hosten. Tips om ni inte lyckas koppla upp er mot database kan ni logga in på er VM och köra docker logs <microblog container namn>
för att se loggen för docker containern.
Nginx ska skicka vidare requests till applikations servrarna.
Ni kan hitta två config filer för Nginx som load balancer på Gist.
I upstream app-hosts
, där man bestämmer vilka vilka servrar requests ska skickas vidare till. Är nu bara en av appserver tillagd. Ändra så båda servrar är med. Ni får inte hårdkoda båda servrarna, gör en dynamisk lösning som hanterar om vi lägger till fler appservrar. T.ex. med en loop.
Använd template modulen i Ansible för att flytta conf filerna. Notera variablerna i load-balancer.conf.j2
som ni behöver ha värden till i Ansible.
nginx.conf.j2
till /etc/nginx/nginx.conf
load-balancer.conf.j2
till /etc/nginx/sites-available/load-balancer.conf
.
Ni kan använda file modulen för att länka load-balancer.conf
till sites-enabled
mappen.
Tips Ni hittar loggfilerna för Nginx i /var/log/nginx
. Om en konfig fil inte fungerar kan ni köra nginx -t
för att validera den.
Tänk på att ni kan använda sudo nginx -t
som validate
steg, på tasks i Ansible, för att validera er Nginx konfiguration.
Uppgiften går ut på att lära sig attacker med hjälp av “OWASP Juiceshop”. Det är ju olagligt att utföra attacker och därför installerar vi en kopia av Juiceshop lokalt. Sen utför vi attacker mot vår Juiceshop och kan om vi behöver ta hjälp av deras “Hacking instructor” och “Tutorials”.
Du skall bygga ut din webbplats och dels skapa en almanacka i form av en månadskalender med bilder och dels skall du göra ett litet gissningsspel. I övningen kommer du att få jobba med att organisera ditt PHP-kodande och jobba med bland annat arrayer och funktioner.
Du kommer också få träna på HTML formulär med POST och sessioner.
Du jobbar i din tidigare struktur av sidkontrollers och vyer och bygger ut din befintliga webbplats.
En uppgift för att träna grunderna i awk. Till din hjälp har du en awk guide samt artikeln om regex.
Du ska utgå ifrån mazerunnern du skapade i kursmoment 05. Tanken är att skriptet ska kunna köras med kommandot ./mazerunner.bash loop
och hålla sig i spelet tills man avslutar eller nått sista rummet.
Du kommer få en färdig server, skriven i Node.js, och ett RESTful API till servern. Servern implementerar en maze. Servern är färdig och du kan testköra den via kommandot curl.
Din uppgift är att bygga en bash-klient till servern, enligt en kravspecifikation. Din klient skall använda servern för att lösa mazen.
Uppgift för att träna på reguljära uttryck och textprocessering med verktyget GNU grep.
Uppgift för att träna på reguljära uttryck och textprocessering med verktyget GNU sed.
Du skall skapa ett Bash-script som testar de olika routesen hos din server. Som hjälp använder vi programmet curl i scriptet. Du kan säkert redan ha det installerat, annars är det bara att installera det med pakethanteraren.
Du skall skapa en Docker image och publicera den till Docker Hub. Imagen ska vara en webbserver som ska kunna svara på en uppsättning routes och returnera JSON.