bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


vagrant

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
vagrant [2026/09/15 19:20]
enric_mieza_sanchez [Exercici 7: Cluster Proxmox]
vagrant [2026/10/13 18:29] (actual)
enric_mieza_sanchez [Exercici 1.6: Wordpress]
Línia 53: Línia 53:
 A partir d'aquestes dates **caldrà que cada usuari hostatgi les seves imatges en servidors propis**. Molts proveïdors de Vagrant boxes com generic, Roboxes.org, etc. han deixat de publicar i actualitzar imatges i ens podem trobar amb errors si les utilitzem. A partir d'aquestes dates **caldrà que cada usuari hostatgi les seves imatges en servidors propis**. Molts proveïdors de Vagrant boxes com generic, Roboxes.org, etc. han deixat de publicar i actualitzar imatges i ens podem trobar amb errors si les utilitzem.
  
-Sembla ser que el proveïdor ''bento'' sí que les seguirà proveint, caldrà veure amb quin mecanisme les publica.+Sembla que l'usuari ''cloud-image'' segueix actualitzant les imatges (al menys fins a Setembre de 2026). Prova de fer els exercicis amb la imatge ''cloud-image/debian-13''. Cal, però, afegir una instrucció per configurar bash com a //shell// de l'usuari vagrant com es mostra en aquest arxiu (per defecte porta sh): 
 +<code ruby> 
 +Vagrant.configure("2") do |config| 
 +  config.vm.box = "cloud-image/debian-13" 
 +  config.vm.provision "shell", inline: <<-SHELL 
 +    chsh -s /bin/bash vagrant 
 +  SHELL 
 +end 
 +</code>
 </WRAP> </WRAP>
  
Línia 104: Línia 112:
  
 ===== Exercicis ===== ===== Exercicis =====
-==== Exercici 1 ====+==== Exercici 1.1 ====
 <WRAP todo> <WRAP todo>
 Investiga com utilitzar aquestes comandes bàsiques: Investiga com utilitzar aquestes comandes bàsiques:
Línia 113: Línia 121:
 </WRAP> </WRAP>
  
-==== Exercici 2 ====+==== Exercici 1.2 ====
 <WRAP todo> <WRAP todo>
 Cerca informació per configurar: Cerca informació per configurar:
Línia 122: Línia 130:
 </WRAP> </WRAP>
  
-==== Exercici 3 ====+==== Exercici 1.3 ====
 <WRAP todo> <WRAP todo>
 Cerca informació del //provider// VirtualBox i modifica el ''Vagrantfile'' adequadament per: Cerca informació del //provider// VirtualBox i modifica el ''Vagrantfile'' adequadament per:
Línia 131: Línia 139:
 </WRAP> </WRAP>
  
-==== Exercici 4 ====+==== Exercici 1.4 ====
 <WRAP todo> <WRAP todo>
 Configura una VM: Configura una VM:
Línia 137: Línia 145:
   - Amb una pàgina de benvinguda personalitzada senzilla, que mostri:<code html>   - Amb una pàgina de benvinguda personalitzada senzilla, que mostri:<code html>
 <h1>VM server</h1></code> <h1>VM server</h1></code>
-  - 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 ''/info.php''. Això s'aconsegueix fàcilment amb la instrucció ''phpinfo()'' que volca tots els paràmetres ben formatats.
 </WRAP> </WRAP>
  
-==== Exercici 5: Apache, PHP i userdir ====+==== Exercici 1.5: Apache, PHP i userdir ====
 <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 153: Línia 162:
 </WRAP> </WRAP>
  
-==== Exercici 6: Wordpress ====+==== Exercici 1.6: Wordpress ====
 <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 182: Línia 191:
   * Utilitzar l'inspector de HTML de les eines de desenvolupador del navegador, i modificar el<code html><form method="post"></code> per <code html><form method="get"></code>   * Utilitzar l'inspector de HTML de les eines de desenvolupador del navegador, i modificar el<code html><form method="post"></code> per <code html><form method="get"></code>
   * 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 "...les-dades-que-apareixen-a-la-URL-dp-del-&..."+  * Elaborar la comanda curl per crear les taules. 
 +    * Ha de ser amb el mètode //post//, apuntant a ''install.php?step=2''. En definitiva:<code>curl -X POST "http://192.168.33.10/wp-admin/install.php?step=2"</code> 
 +    * Separeu les dades del formulari de la URL i les afegiu amb ''-d "...les-dades-que-apareixen-a-la-URL-dp-del-&..."''
  
 ...et voilà! ...et voilà!
Línia 211: Línia 222:
 \\ \\
  
-==== Loops Ruby ====+==== Loops en Ruby ====
  
-Els //loops// en Ruby (ens caldran pels scripts Vagrant) es poden fer de moltes formes, de les quals la més típica podria ser aquesta:+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
  
-<file ruby loop.rb> 
 (1..5).each do |n| (1..5).each do |n|
   puts "volta #{n}"   puts "volta #{n}"
 +end
 +
 +
 +# iterar un array
 +
 +nodes = [ "web", "db", "storage" ]
 +nodes.each_with_index do |name, i|
 +  puts "VM num #{i} : #{name}"
 +end
 +
 +
 +# iterar un diccionari
 +
 +nodes = {
 +  "web"     => { ip: "192.168.33.10", memory: 1024, cpus: 1 },
 +  "db"      => { ip: "192.168.33.11", memory: 2048, cpus: 2 },
 +  "storage" => { ip: "192.168.33.12", memory: 512,  cpus: 1 }
 +}
 +
 +nodes.each do |name, opts|
 +  puts "VM #{name}"
 +  puts "\tcpus:\t" + opts[:cpus].to_s
 +  puts "\tmemory:\t" + opts[:memory].to_s
 +  puts "\tip:\t" + opts[:ip]
 end end
 </file> </file>
Línia 223: Línia 260:
 \\ \\
  
-==== Exercici 21: Cluster Proxmox ====+==== Crear diverses VMs en un arxiu Vagrant ==== 
 +Per crear diverses VMs en un arxiu es fa mitjançant la crida ''config.vm.define'': 
 + 
 +<file ruby Vagrantfile> 
 +Vagrant.configure("2") do |config| 
 +  config.vm.box = "ubuntu/jammy64" 
 + 
 +  config.vm.define "web" do |web| 
 +    web.vm.hostname = "web" 
 +    web.vm.network "private_network", ip: "192.168.33.10" 
 +  end 
 + 
 +  config.vm.define "db" do |db| 
 +    db.vm.hostname = "db" 
 +    db.vm.network "private_network", ip: "192.168.33.11" 
 +  end 
 +end 
 +</file> 
 + 
 +I si ho volem fer amb un loop: 
 + 
 +<file ruby Vagrantfile> 
 +Vagrant.configure("2") do |config| 
 +  config.vm.box = "ubuntu/jammy64" 
 + 
 +  nodes = { 
 +    "web" => "192.168.33.10", 
 +    "db"  => "192.168.33.11" 
 +  } 
 + 
 +  nodes.each do |name, ip| 
 +    config.vm.define name do |node| 
 +      node.vm.hostname = name 
 +      node.vm.network "private_network", ip: ip 
 +    end 
 +  end 
 +end 
 +</file> 
 + 
 +\\ 
 + 
 +===== 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. 
 +</WRAP> 
 + 
 +\\ 
 + 
 +==== Exercici 2.2: Cluster Proxmox ====
 <WRAP todo> <WRAP todo>
  
Línia 251: Línia 344:
 EOF EOF
 </code> </code>
- 
  
 </WRAP> </WRAP>
  
vagrant.1789500014.txt.gz · Darrera modificació: 2026/09/15 19:20 per enric_mieza_sanchez