Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
|
vagrant [2026/09/09 15:53] enric_mieza_sanchez [Exercici 4: Apache, PHP i userdir] |
vagrant [2026/10/13 18:29] (actual) enric_mieza_sanchez [Exercici 1.6: Wordpress] |
||
|---|---|---|---|
| Línia 18: | Línia 18: | ||
| Les instruccions oficials les teniu aquí: https:// | Les instruccions oficials les teniu aquí: https:// | ||
| - | Però en Ubuntu sol estar als repositoris | + | Sol estar disponible |
| - | $ sudo apt install vagrant | + | |
| - | + | ||
| - | Recordeu que Vagrant no virtualitza, sinó que automatitza tasques amb algun virtualitzador // | + | |
| - | $ sudo apt install virtualbox | + | |
| - | + | ||
| - | <WRAP important> | + | |
| - | Es recomana utilitzar una màquina física Ubuntu 22.04 (LTS) amb | + | |
| - | * VirtualBox 7.0 (no és el de la versió | + | |
| - | * Instal·lar Vagrant segons les [[https:// | + | |
| - | + | ||
| - | </ | + | |
| \\ | \\ | ||
| Línia 65: | Línia 53: | ||
| A partir d' | A partir d' | ||
| - | Sembla | + | Sembla que l'usuari |
| + | <code ruby> | ||
| + | Vagrant.configure(" | ||
| + | config.vm.box = " | ||
| + | config.vm.provision " | ||
| + | chsh -s /bin/bash vagrant | ||
| + | SHELL | ||
| + | end | ||
| + | </ | ||
| </ | </ | ||
| Línia 116: | Línia 112: | ||
| ===== Exercicis ===== | ===== Exercicis ===== | ||
| - | ==== Exercici 1 ==== | + | ==== Exercici |
| <WRAP todo> | <WRAP todo> | ||
| Investiga com utilitzar aquestes comandes bàsiques: | Investiga com utilitzar aquestes comandes bàsiques: | ||
| Línia 125: | Línia 121: | ||
| </ | </ | ||
| - | ==== Exercici 2 ==== | + | ==== Exercici |
| <WRAP todo> | <WRAP todo> | ||
| Cerca informació per configurar: | Cerca informació per configurar: | ||
| Línia 134: | Línia 130: | ||
| </ | </ | ||
| - | ==== Exercici 3 ==== | + | ==== Exercici |
| <WRAP todo> | <WRAP todo> | ||
| Cerca informació del // | Cerca informació del // | ||
| Línia 143: | Línia 139: | ||
| </ | </ | ||
| - | ==== Exercici 4 ==== | + | ==== Exercici |
| <WRAP todo> | <WRAP todo> | ||
| Configura una VM: | Configura una VM: | ||
| Línia 149: | Línia 145: | ||
| - Amb una pàgina de benvinguda personalitzada senzilla, que mostri:< | - Amb una pàgina de benvinguda personalitzada senzilla, que mostri:< | ||
| < | < | ||
| - | - Que mostri la web als ports 80 i 8080 | + | - Que mostri la web als ports 80 i 8080 de la VM |
| + | - Que mostri la info de php a la pàgina ''/ | ||
| </ | </ | ||
| - | ==== Exercici 5: Apache, PHP i userdir ==== | + | ==== Exercici |
| <WRAP todo> | <WRAP todo> | ||
| Fes un Vagrantfile que crei una màquina amb les següents característiques: | Fes un Vagrantfile que crei una màquina amb les següents característiques: | ||
| Línia 165: | Línia 162: | ||
| </ | </ | ||
| - | ==== Exercici | + | ==== Exercici |
| <WRAP todo> | <WRAP todo> | ||
| Volem fer proves amb Wordpress i automatitzarem la configuració del servei en una VM amb Vagrant. | Volem fer proves amb Wordpress i automatitzarem la configuració del servei en una VM amb Vagrant. | ||
| Línia 194: | Línia 191: | ||
| * Utilitzar l' | * Utilitzar l' | ||
| * Enviar el formulari. Les dades que necessitem les tenim davant nostre a la URL. | * Enviar el formulari. Les dades que necessitem les tenim davant nostre a la URL. | ||
| - | * Elaborar la comanda curl amb -X POST i -d " | + | * Elaborar la comanda curl per crear les taules. |
| + | * Ha de ser amb el mètode //post//, apuntant a '' | ||
| + | * Separeu les dades del formulari de la URL i les afegiu amb '' | ||
| ...et voilà! | ...et voilà! | ||
| Línia 200: | Línia 199: | ||
| </ | </ | ||
| - | ==== Exercici | + | |
| + | \\ | ||
| + | |||
| + | ===== Aprofundint: | ||
| + | |||
| + | Vagrant utilitza scripts en llenguatge Ruby. En realitat no utilitza funcions molt sofisticades d' | ||
| + | |||
| + | Pots crear un script ruby i executar-lo amb l' | ||
| + | |||
| + | <file ruby nom.rb> | ||
| + | # | ||
| + | |||
| + | puts "Com et dius?" | ||
| + | nom = gets.chomp | ||
| + | |||
| + | puts "Hola, # | ||
| + | </ | ||
| + | |||
| + | Guarda l' | ||
| + | $ ruby nom.rb | ||
| + | |||
| + | \\ | ||
| + | |||
| + | ==== Loops en Ruby ==== | ||
| + | |||
| + | Els //loops// en Ruby (ens caldran pels scripts Vagrant) es poden fer de moltes formes, de les quals les més típiques podrien ser aquestes: | ||
| + | |||
| + | <file ruby loops.rb> | ||
| + | # un bucle indexat | ||
| + | |||
| + | (1..5).each do |n| | ||
| + | puts "volta # | ||
| + | end | ||
| + | |||
| + | |||
| + | # iterar un array | ||
| + | |||
| + | nodes = [ " | ||
| + | nodes.each_with_index do |name, i| | ||
| + | puts "VM num #{i} : # | ||
| + | end | ||
| + | |||
| + | |||
| + | # iterar un diccionari | ||
| + | |||
| + | nodes = { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | |||
| + | nodes.each do |name, opts| | ||
| + | puts "VM # | ||
| + | puts " | ||
| + | puts " | ||
| + | puts " | ||
| + | end | ||
| + | </ | ||
| + | |||
| + | \\ | ||
| + | |||
| + | ==== Crear diverses VMs en un arxiu Vagrant ==== | ||
| + | Per crear diverses VMs en un arxiu es fa mitjançant la crida '' | ||
| + | |||
| + | <file ruby Vagrantfile> | ||
| + | Vagrant.configure(" | ||
| + | config.vm.box = " | ||
| + | |||
| + | config.vm.define " | ||
| + | web.vm.hostname = " | ||
| + | web.vm.network " | ||
| + | end | ||
| + | |||
| + | config.vm.define " | ||
| + | db.vm.hostname = " | ||
| + | db.vm.network " | ||
| + | end | ||
| + | end | ||
| + | </ | ||
| + | |||
| + | I si ho volem fer amb un loop: | ||
| + | |||
| + | <file ruby Vagrantfile> | ||
| + | Vagrant.configure(" | ||
| + | config.vm.box = " | ||
| + | |||
| + | nodes = { | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | |||
| + | nodes.each do |name, ip| | ||
| + | config.vm.define name do |node| | ||
| + | node.vm.hostname = name | ||
| + | node.vm.network " | ||
| + | end | ||
| + | end | ||
| + | end | ||
| + | </ | ||
| + | |||
| + | \\ | ||
| + | |||
| + | ===== Mes exercicis ===== | ||
| + | |||
| + | ==== Exercici 2.1: Aulari ==== | ||
| + | <WRAP todo> | ||
| + | |||
| + | Crea una simulació d'un aulari: | ||
| + | * 3 aules, amb 3 VMs cadascuna. | ||
| + | * Cada aula té una xarxa separada | ||
| + | * Cada VM té 512 MB de RAM | ||
| + | * Crea un node **master** que vegi totes les aules. | ||
| + | * Configura les màquines perquè la master pugui entrar per SSH a qualsevol de les VMs. | ||
| + | </ | ||
| + | |||
| + | \\ | ||
| + | |||
| + | ==== Exercici | ||
| <WRAP todo> | <WRAP todo> | ||
| Línia 228: | Línia 344: | ||
| EOF | EOF | ||
| </ | </ | ||
| - | |||
| </ | </ | ||