jeos-and-vmbuilder.html 36.8 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JeOS e vmbuilder</title>
<link rel="stylesheet" type="text/css" href="it.css">
<script type="text/javascript" src="jquery.js"></script><script type="text/javascript" src="jquery.syntax.js"></script><script type="text/javascript" src="yelp.js"></script><link rel="stylesheet" type="text/css" href="main.css">
<link rel="stylesheet" type="text/css" href="custom.css">
<script type="text/javascript" src="http://ubuntu-it.org/sites/all/themes/light-drupal-theme/js/cookies.js"></script><script type="text/javascript" src="http://ubuntu-it.org/sites/all/themes/light-drupal-theme/js/accessibility.js"></script>
</head>
<body>
<script type="text/javascript">var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
      document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
      </script><script type="text/javascript">
      try {
      var pageTracker = _gat._getTracker("UA-8147493-2");
      pageTracker._trackPageview();
      } catch(err) {}
      </script><div id="fixed-header">
<div id="header" class="shadowed curved-bottom"><div class="container">
<ul class="links">
<li><a href="http://help.ubuntu-it.org">Documentazione ufficiale</a></li>
<li><a href="http://wiki.ubuntu-it.org/Documentazione/Indice">Guide della comunità</a></li>
<li class="active"><a href="http://help.ubuntu-it.org/12.04/server/serverguide/it/index.html">12.04 LTS</a></li>
</ul>
<div id="logo">
<div id="ubuntu-it-sites">
<a href="http://www.ubuntu-it.org">web </a><a href="http://wiki.ubuntu-it.org">wiki </a><a href="http://forum.ubuntu-it.org">forum </a><a href="http://planet.ubuntu-it.org">planet </a>
</div>
<a href="http://help.ubuntu-it.org" title="Ubuntu - Documentazione ufficiale"><span>help.</span>ubuntu-it
            </a><span>comunità italiana</span>
</div>
<div class="buttons"><div id="accessibility" title="Maggiore focus ai contenuti" onclick="accessibility_toggle();"></div></div>
</div></div>
<div id="subheader"><div class="container"><div class="container-inside"><ul class="links secondary-links">
<li><a href="http://help.ubuntu-it.org/12.04/desktop/index.html" title="Guida utente di Ubuntu 12.04 LTS">Desktop</a></li>
<li class="active"><a href="http://help.ubuntu-it.org/12.04/server/serverguide/it/index.html" title="Guida utente di Ubuntu server 12.04 LTS">Server</a></li>
<li><a href="http://help.ubuntu-it.org/12.04/search.php" title="Ricerna della documentazione di Ubuntu 12.04 LTS">Ricerca</a></li>
</ul></div></div></div>
</div>
<div id="content">
<div id="content-top"></div>
<div class="container">
<div id="tmp-note">Questa guida non è stata ancora completamente tradotta. Se vuoi contribuire alla sua traduzione contatta il <a href="http://wiki.ubuntu-it.org/GruppoTraduzione/" title="Gruppo Traduzione">Gruppo Traduzione</a> di Ubuntu-it.</div>
<div id="search-box"><form action="http://help.ubuntu-it.org/12.04/search.php" id="cse-search-box"><div><input type="text" name="s" value="Cerca ..." onfocus="if(this.value == 'Cerca ...') { this.value = ''; }" onblur="if (this.value == '') {this.value = 'Cerca ...';}"></div></form></div>
<div class="trails"><div class="trail">
<a class="trail" href="index.html" title="Guida a Ubuntu Server">Guida a Ubuntu Server</a> » <a class="trail" href="virtualization.html" title="Virtualizzazione">Virtualizzazione</a> » </div></div>
<div id="cwt-content"><div id="page">
<div id="content">
<div class="links nextlinks">
<a class="nextlinks-prev" href="libvirt.html" title="libvirt">Indietro</a>  |  <a class="nextlinks-next" href="uec.html" title="UEC">Avanti</a>
</div>
<div class="hgroup"><h1 class="title">JeOS e vmbuilder</h1></div>
<div class="region">
<div class="contents"></div>
<div class="links sectionlinks"><ul>
<li class="links"><a class="xref" href="jeos-and-vmbuilder.html#jeos-introduction" title="Introduzione">Introduzione</a></li>
<li class="links"><a class="xref" href="jeos-and-vmbuilder.html#jeos-initial-setup" title="Configurazione iniziale">Configurazione iniziale</a></li>
<li class="links"><a class="xref" href="jeos-and-vmbuilder.html#defining-vm" title="Definire una macchina virtuale">Definire una macchina virtuale</a></li>
<li class="links"><a class="xref" href="jeos-and-vmbuilder.html#jeos-package-application" title="Pacchettizzare l'applicativo">Pacchettizzare l'applicativo</a></li>
<li class="links"><a class="xref" href="jeos-and-vmbuilder.html#jeos-additions" title="Utili accorgimenti">Utili accorgimenti</a></li>
<li class="links"><a class="xref" href="jeos-and-vmbuilder.html#jeos-final-command" title="Il comando finale">Il comando finale</a></li>
<li class="links"><a class="xref" href="jeos-and-vmbuilder.html#jeos-resources" title="Risorse">Risorse</a></li>
</ul></div>
<div class="sect2 sect" id="jeos-introduction"><div class="inner">
<div class="hgroup"><h2 class="title">Introduzione</h2></div>
<div class="region">
<div class="contents"></div>
<div class="sect3 sect" id="what-is-jeos"><div class="inner">
<div class="hgroup"><h3 class="title">Cos'è JeOS</h3></div>
<div class="region"><div class="contents">
<p class="para">Ubuntu <span class="em emphasis">JeOS</span> (pronunciato come la parola "juice") è una variante di della versione server di Ubuntu, configurata appositamente per le applicazioni virtuali. Non è disponibile sotto forma di file ISO per CD-ROM, ma solo come opzione:</p>
<div class="list itemizedlist"><ul class="list itemizedlist">
<li class="list itemizedlist">
      <p class="para">durante l'installazione della versione server (premere <span class="em emphasis">F4</span> alla prima schermata per scegliere l'opzione "Installa un sistema minimale" che equivale a selezionare JeOS).</p>
    </li>
<li class="list itemizedlist">
      <p class="para">oppure può essere generato usando "vmbuilder" come descritto di seguito.</p>
    </li>
</ul></div>
<p class="para">JeOS è un'installazione di Ubuntu Server Edition con un kernel appositamente configurato che contiene gli elementi basilari necessari all'esecuzione di un ambiente virtualizzato.</p>
<p class="para">Ubuntu JeOS è stato progettato per sfruttare tutte quelle tecnologie chiave, relative alle prestazioni, presenti negli ultimi prodotti di virtualizzazione di VMware. La combinazione di una ridotta dimensione e prestazioni ottimizzate, assicurano che Ubuntu JeOS Edition sia in grado di offrire un uso efficiente delle risorse server in grandi produzioni virtuali.</p>
<p class="para">Senza l'utilizzo di driver non necessari e ricorrendo solo ai pacchetti richiesti, gli ISV possono configurare il proprio SO di supporto proprio come desiderano. Inoltre, viene assicurato che gli aggiornamenti, di sicurezza o per miglioramenti, saranno limitati al minimo richiesto dallo specifico ambiente. Gli utenti che sviluppano soluzioni virtuali basate su JeOS, dovranno gestire meno aggiornamenti, e quindi una minor manutenzione, di quanto avrebbero dovuto fare con un'installazione server completa.</p>
</div></div>
</div></div>
<div class="sect3 sect" id="what-is-vmbuilder"><div class="inner">
<div class="hgroup"><h3 class="title">Cos'è vmbuilder</h3></div>
<div class="region"><div class="contents">
<p class="para">Utilizzando vmbuilder non è necessario scaricare un'immagine di JeOS: verranno scaricati i pacchetti necessari per creare una macchina virtuale adatta alle proprie esigenze. vmbuilder è uno script che automatizza la creazione di una macchina virtuale Linux. Gli hypervisor supportati attualmente sono KVM e Xen.</p>
<p class="para">È possibile passare opzioni a riga di comando per aggiungere dei pacchetti, per rimuoverne, per scegliere la versione di Ubuntu, quale mirror, ecc... Su piattaforme hardware recenti dotate di molta memoria RAM, con tmpdir in <span class="file filename">/dev/shm</span> o usando un tmpfs e un mirror locale, è possibile avere una macchina virtuale in meno di un minuto.</p>
<p class="para">Introdotto come semplice script shell in Ubuntu 8.04 LTS, <span class="app application">ubuntu-vm-builder</span> era un semplice progetto per aiutare gli sviluppatori nel provare il codice scritto in una virtual machine senza dover ricominciare sempre da capo. Lo script è stato in seguito migliorato e Soren Hansen (l'autore dello script e lo specialista di virtualizzazione in Ubuntu virtualization, non il giocatore di golf) lo ha riscritto da capo per Intrepid in python con i seguenti obiettivi:</p>
<div class="list itemizedlist"><ul class="list itemizedlist">
<li class="list itemizedlist">
          <p class="para">Svilupparlo affinché possa essere usato anche da altre distribuzioni.</p>
        </li>
<li class="list itemizedlist">
          <p class="para">Usare un meccanismo di plugin per tutte le interazioni di virtualizzazione per facilitare l'aggiunta di altri ambienti di virtualizzazione o una logica più complessa.</p>
        </li>
<li class="list itemizedlist">
          <p class="para">Fornire un'interfaccia web facile da usare come opzione alla riga di comando.</p>
        </li>
</ul></div>
<p class="para">I principi generali e i comandi restano sempre gli stessi.</p>
</div></div>
</div></div>
</div>
</div></div>
<div class="sect2 sect" id="jeos-initial-setup"><div class="inner">
<div class="hgroup"><h2 class="title">Configurazione iniziale</h2></div>
<div class="region">
<div class="contents">
<p class="para">Si presuppone che siano già stati installati e configurati <span class="app application">libvirt</span> e <span class="app application">KVM</span> sul computer che si intende usare. Per maggiori informazioni, consultare:</p>
<div class="list itemizedlist"><ul class="list itemizedlist">
<li class="list itemizedlist">
        <p class="para">
        <a class="xref" href="libvirt.html" title="libvirt">libvirt</a>
        </p>
      </li>
<li class="list itemizedlist">
        <p class="para">La pagina relativa a <a class="ulink" href="https://help.ubuntu.com/community/KVM" title="https://help.ubuntu.com/community/KVM">KVM</a> nella documentazione (in inglese).</p>
      </li>
</ul></div>
<p class="para">Si dà per assodato che si sappia utilizzare un editor di testo come nano oppure vi. In caso contrario, è possibile avere una panoramica dei vari editor di testo consultando <a class="ulink" href="http://wiki.ubuntu-it.org/Ufficio/EditorDiTesto#powereditor" title="http://wiki.ubuntu-it.org/Ufficio/EditorDiTesto#powereditor">la documentazione di Ubuntu</a>. Questa guida è stata scritta basandosi su KVM, ma il principio dovrebbe essere lo stesso anche per altre tecnologie di virtualizzazione.</p>
</div>
<div class="sect3 sect" id="install-vmbuilder"><div class="inner">
<div class="hgroup"><h3 class="title">Installare vmbuilder</h3></div>
<div class="region"><div class="contents">
<p class="para">Il nome del pacchetto da installare è <span class="app application">python-vm-builder</span>. In un terminale digitare:</p>
<div class="screen"><pre class="contents "><span class="cmd command">sudo apt-get install python-vm-builder</span>
</pre></div>
<div class="note" title="Annotazione"><div class="inner"><div class="region"><div class="contents">
          <p class="para">Se si sta eseguendo la versione 8.04 è sempre possibile eseguire queste azioni usando la versione del pacchetto chiamata <span class="app application">ubuntu-vm-builder</span>; ci sono solo alcune modifiche nella sintassi da usare con il programma.</p>
        </div></div></div></div>
</div></div>
</div></div>
</div>
</div></div>
<div class="sect2 sect" id="defining-vm"><div class="inner">
<div class="hgroup"><h2 class="title">Definire una macchina virtuale</h2></div>
<div class="region">
<div class="contents">
<p class="para">Definire una macchina virtuale con vmbuilder è molto facile, ma è necessario prendere in considerazione alcuni aspetti:</p>
<div class="list itemizedlist"><ul class="list itemizedlist">
<li class="list itemizedlist">
          <p class="para">Se si pianifica di fornire applicativi virtuali, non assumere che l'utente finale sappia come estendere la dimensione del disco secondo le proprie esigenze. Prendere quindi in considerazione l'utilizzo di dischi virtuali di grandi dimensioni per consentire agli applicativi di crescere o spiegare nella documentazione come allocare maggiore spazio. Potrebbe essere una buona idea salvare i dati in un sistema di archiviazione esterno.</p>
	</li>
<li class="list itemizedlist">
          <p class="para">Dato che la memoria RAM è più facile da allocare in una MV, la dimensione della RAM dovrebbe essere impostata a un valore minimo sicuro per la propria applicazione.</p>
	</li>
</ul></div>
<p class="para">Il comando <span class="app application">vmbuilder</span> dispone di due parametri principali: la <span class="em emphasis">tecnologia di virtualizzazione (hypervisor)</span> e la <span class="em emphasis">distribuzione</span> finale. Sono disponibili molti altri parametri e tutti possono essere visualizzati con il seguente comando:</p>
<div class="screen"><pre class="contents "><span class="cmd command">vmbuilder kvm ubuntu --help</span>
</pre></div>
</div>
<div class="sect3 sect" id="vm-base-parameters"><div class="inner">
<div class="hgroup"><h3 class="title">Parametri base</h3></div>
<div class="region"><div class="contents">
<p class="para">
      As this example is based on <span class="app application">KVM</span> and Ubuntu 12.04 LTS (Precise Pangolin), and we are likely to rebuild 
      the same virtual machine multiple time, we'll invoke vmbuilder with the following first parameters: 
      </p>
<div class="screen"><pre class="contents "><span class="cmd command">sudo vmbuilder kvm ubuntu --suite precise --flavour virtual --arch i386  \
-o --libvirt qemu:///system</span>
</pre></div>
<p class="para">Il parametro <span class="em emphasis">--suite</span> definisce il rilascio di Ubuntu, <span class="em emphasis">--flavour</span> specifica di usare il kernel virtuale (quello usato per generare un'immagine JeOS), <span class="em emphasis">--arch</span> indica di usare un computer a 32 bit, <span class="em emphasis">-o</span> indica a vmbuilder di sovrascrivere la versione precedente della macchina virtuale e <span class="em emphasis">--libvirt</span> aggiunge la macchina virtuale risultante tra quelle disponibili nell'ambiente di virtualizzazione.</p>
<p class="para">Note:</p>
<div class="list itemizedlist"><ul class="list itemizedlist">
<li class="list itemizedlist">
          <p class="para">Data la natura delle operazioni eseguite da vmbuilder, sono necessari i privilegi di root.</p>
        </li>
<li class="list itemizedlist">
          <p class="para">Se la macchina virtuale necessita di usare più di 3GB di RAM, è utile generare una macchina a 64 bit (--arch amd64).</p>
        </li>
<li class="list itemizedlist">
          <p class="para">Fino a Ubuntu 8.10, il kernel virtuale era generato solo per architetture a 32 bit, per definire quindi una macchina amd64 su Hardy, usare <span class="em emphasis">--flavour server</span>.</p>
        </li>
</ul></div>
</div></div>
</div></div>
<div class="sect3 sect" id="jeos-installation-parameters"><div class="inner">
<div class="hgroup"><h3 class="title">Parametri di installazione di JeOS</h3></div>
<div class="region">
<div class="contents"></div>
<div class="sect4 sect" id="jeos-networking"><div class="inner">
<div class="hgroup"><h4 class="title">Rete con JeOS</h4></div>
<div class="region">
<div class="contents"></div>
<div class="sect5 sect" id="jeos-fixed-ip"><div class="inner">
<div class="hgroup"><h5 class="title">Assegnare un indirizzo IP fisso</h5></div>
<div class="region"><div class="contents">
<p class="para">Come applicazione che verrà messa in produzione all'interno di reti diverse, è molto difficile conoscere la struttura attuale della rete. Per semplificare la configurazione è utile procedere come solitamente procedono i venditori di hardware di rete, assegnando un indirizzo IP fisso all'interno di una classe di rete che verrà descritta all'interno della propria documentazione. Un indirizzo nell'intervallo 192.168.0.0/255 è una buona scelta.</p>
<p class="para">Per ottenere questo vengono usati i seguenti parametri:</p>
<div class="list itemizedlist"><ul class="list itemizedlist">
<li class="list itemizedlist">
            <p class="para"><span class="em emphasis">--ip INDIRIZZO</span>: indirizzo IP (il valore predefinito è dhcp se non viene specificato nulla)</p>
	  </li>
<li class="list itemizedlist">
            <p class="para">
            <span class="em emphasis">--hostname NAME</span>: Set NAME as the hostname of the guest.
            </p>
	  </li>
<li class="list itemizedlist">
            <p class="para"><span class="em emphasis">--mask VALORE</span>: maschera di rete (valore predefinito: 255.255.255.0)</p>
          </li>
<li class="list itemizedlist">
            <p class="para"><span class="em emphasis">--net VALORE</span>: indirizzo IP net (valore predefinito: X.X.X.0)</p>
	  </li>
<li class="list itemizedlist">
            <p class="para"><span class="em emphasis">--bcast VALORE</span>: broadcast (valore predefinito: X.X.X.255)</p>
	  </li>
<li class="list itemizedlist">
            <p class="para"><span class="em emphasis">--gw INDIRIZZO</span>: indirizzo del gateway (valore predefinito: X.X.X.1)</p>
	  </li>
<li class="list itemizedlist">
            <p class="para"><span class="em emphasis">--dns INDIRIZZO</span>: indirizzo server dei nomi (valore predefinito: X.X.X.1)</p>
	  </li>
</ul></div>
<p class="para">Si dà per scontato che i valori predefiniti siano sufficiente. Il comando diventa:</p>
<div class="screen"><pre class="contents "><span class="cmd command">sudo vmbuilder kvm ubuntu --suite precise --flavour virtual --arch i386 \
-o --libvirt qemu:///system --ip 192.168.0.100 --hostname myvm </span>
</pre></div>
</div></div>
</div></div>
<div class="sect5 sect" id="jeos-bridging"><div class="inner">
<div class="hgroup"><h5 class="title">Bridging</h5></div>
<div class="region"><div class="contents">
<p class="para">
          Because our appliance will be likely to need to be accessed by remote hosts, we need to configure libvirt so that the appliance
          uses bridge networking.  To do this add the <span class="em emphasis">--bridge</span> option to the command: 
          </p>
<div class="screen"><pre class="contents "><span class="cmd command">sudo vmbuilder kvm ubuntu --suite precise --flavour virtual --arch i386 \
-o --libvirt qemu:///system --ip 192.168.0.100 --hostname myvm --bridge br0</span>
</pre></div>
<div class="note" title="Annotazione"><div class="inner"><div class="region"><div class="contents">
          <p class="para">
          You will need to have previously setup a bridge interface, see <a class="xref" href="network-configuration.html#bridging" title="Bridging">Bridging</a> for more information.
          Also, if the interface name is different change <span class="em emphasis">br0</span> to the actual bridge interface.
          </p>
        </div></div></div></div>
</div></div>
</div></div>
</div>
</div></div>
<div class="sect4 sect" id="jeos-partitioning"><div class="inner">
<div class="hgroup"><h4 class="title">Partizionamento</h4></div>
<div class="region"><div class="contents">
<p class="para">Il partizionamento dell'applicativo virtuale deve prendere in considerazione cosa si intende fare. Dato che molti applicativi non avranno un sistema di archiviazione separato per i dati, usare una partizione <span class="file filename">/var</span> separata è una buona idea.</p>
<p class="para">Per ottenere tutto questo, vmbuilder dispone dell'opzione <span class="em emphasis">--part</span>:</p>
<div class="code"><pre class="contents ">--part PATH
  Allows you to specify a partition table in a partition file, located at PATH. Each
  line of the partition file should specify (root first):
      mountpoint size
  where  size  is  in megabytes. You can have up to 4 virtual disks, a new disk starts
  on a line with ’---’.  ie :
      root 1000
      /opt 1000
      swap 256
      ---
      /var 2000
      /log 1500
</pre></div>
<p class="para">In questo caso, creare un file di testo <span class="file filename">vmbuilder.partition</span> contenente quanto segue:</p>
<div class="code"><pre class="contents ">root 8000
swap 4000
---
/var 20000
</pre></div>
<div class="note" title="Annotazione"><div class="inner"><div class="region"><div class="contents">
          <p class="para">Notare che vengono usate immagini disco virtuali, le dimensioni inserite sono le dimensioni massime dei volumi.</p>
        </div></div></div></div>
<p class="para">Il comando diventa quindi:</p>
<div class="screen"><pre class="contents "><span class="cmd command">sudo vmbuilder kvm ubuntu --suite precise --flavour virtual --arch i386 \
-o --libvirt qemu:///system --ip 192.168.0.100 --hostname myvm --part vmbuilder.partition</span>
</pre></div>
<div class="note" title="Annotazione"><div class="inner"><div class="region"><div class="contents">
          <p class="para">L'uso di "\" all'interno di un comando consente di scrivere comandi su più righe.</p>
        </div></div></div></div>
</div></div>
</div></div>
<div class="sect4 sect" id="jeos-user-password"><div class="inner">
<div class="hgroup"><h4 class="title">Utente e password</h4></div>
<div class="region"><div class="contents">
<p class="para">È necessario anche impostare un utente e una password predefiniti e generici da poter includere nella documentazione. Successivamente verrà presentato uno script che viene eseguito al primo accesso di un utente che tra le molte cose chiederà di modificare la password. In questo esempio viene usato come nome utente <span class="em emphasis">user</span> e <span class="em emphasis">default</span> come password.</p>
<p class="para">Per fare questo vengono usati i seguenti parametri:</p>
<div class="list itemizedlist"><ul class="list itemizedlist">
<li class="list itemizedlist">
            <p class="para"><span class="em emphasis">--user NOME_UTENTE</span>: imposta il nome utente da aggiungere. Valore predefinito: ubuntu.</p>
          </li>
<li class="list itemizedlist">
            <p class="para"><span class="em emphasis">--name NOME_COMPLETO</span>: imposta il nome completo dell'utente da aggiungere. Valore predefinito: Ubuntu.</p>
          </li>
<li class="list itemizedlist">
            <p class="para"><span class="em emphasis">--pass PASSWORD</span>: imposta la password dell'utente: Valore predefinito: ubuntu.</p>
          </li>
</ul></div>
<p class="para">Il comando ora è il seguente:</p>
<div class="screen"><pre class="contents "><span class="cmd command">sudo vmbuilder kvm ubuntu --suite precise --flavour virtual --arch i386 \
-o --libvirt qemu:///system --ip 192.168.0.100 --hostname myvm --part \
vmbuilder.partition --user user --name user --pass default</span>
</pre></div>
</div></div>
</div></div>
</div>
</div></div>
<div class="sect3 sect" id="jeos-required-packages"><div class="inner">
<div class="hgroup"><h3 class="title">Installare i pacchetti richiesti</h3></div>
<div class="region"><div class="contents">
<p class="para">In questo esempio verrà installato un pacchetto (<span class="app application">Limesurvey</span>) che accede a un database <span class="app application">MySQL</span> ed è dotato di un'interfaccia web. Il sistema operativo dovrà quindi aver installato:</p>
<div class="list itemizedlist"><ul class="list itemizedlist">
<li class="list itemizedlist"><p class="para">Apache</p></li>
<li class="list itemizedlist"><p class="para">PHP</p></li>
<li class="list itemizedlist"><p class="para">MySQL</p></li>
<li class="list itemizedlist"><p class="para">Server OpenSSH</p></li>
<li class="list itemizedlist"><p class="para">Limesurvey (un'applicazione di esempio creata appositamente)</p></li>
</ul></div>
<p class="para">
      This is done using vmbuilder by specifying the --addpkg option multiple times:
      </p>
<div class="code"><pre class="contents ">--addpkg PKG
  Install PKG into the guest (can be specfied multiple times)
</pre></div>
<p class="para">Purtroppo, in base al funzionamento di vmbuilder, i pacchetti che devono porre delle domande nella fase di post-installazione non sono supportati e dovrebbero essere installati successivamente quando è possibile interagirvi. Questo è il caso di Limesurvey che verrà installato successivamente, dopo che l'utente ha eseguito l'accesso.</p>
<p class="para">Altri pacchetti che pongono delle semplici domande di debconf, come <span class="app application">mysql-server</span> che richiede di impostare una password, possono essere installati, ma dovranno essere riconfigurati una volta eseguito l'accesso.</p>
<p class="para">Se alcuni dei pacchetti che si devono installare non sono presenti nel componente "main", è necessario abilitare dei repository aggiuntivi usando le opzioni "--comp" e "--ppa":</p>
<div class="code"><pre class="contents ">--components COMP1,COMP2,...,COMPN
           A comma separated list of distro components to include (e.g. main,universe).
           This defaults to "main"
--ppa=PPA  Add ppa belonging to PPA to the vm's sources.list.
</pre></div>
<p class="para">Limesurvey non fa parte degli archivi attualmente ed è quindi necessario specificarne l'indirizzo PPA (Personal Package Archive) così da aggiungerlo al file <span class="file filename">/etc/apt/source.list</span> della macchina virtuale. Aggiungere quindi quanto segue al comando:</p>
<div class="screen"><pre class="contents "><span class="cmd command">--addpkg apache2 --addpkg apache2-mpm-prefork --addpkg apache2-utils \
         --addpkg apache2.2-common --addpkg dbconfig-common --addpkg libapache2-mod-php5 \
         --addpkg mysql-client --addpkg php5-cli --addpkg php5-gd --addpkg php5-ldap \
         --addpkg php5-mysql --addpkg wwwconfig-common --addpkg mysql-server --ppa nijaba</span>
</pre></div>
</div></div>
</div></div>
<div class="sect3 sect" id="jeos-speed-consideration"><div class="inner">
<div class="hgroup"><h3 class="title">Considerazioni sulla velocità</h3></div>
<div class="region">
<div class="contents"></div>
<div class="sect4 sect" id="jeos-package-caching"><div class="inner">
<div class="hgroup"><h4 class="title">Cache dei pacchetti</h4></div>
<div class="region"><div class="contents">
<p class="para">       
          When vmbuilder creates builds your system, it has to go fetch each one of the packages that composes it over the network 
          to one of the official repositories, which, depending on your internet connection speed and the load of the mirror, can 
          have a big impact on the actual build time. In order to reduce this, it is recommended to either have a local repository 
          (which can be created using <span class="app application">apt-mirror</span>) or using a caching proxy such as 
          <span class="app application">apt-proxy</span>. The later option being much simpler to implement and requiring less disk space, it
          is the one we will pick in this tutorial. To install it, simply type:
          </p>
<div class="screen"><pre class="contents "><span class="cmd command">sudo apt-get install apt-proxy</span>
</pre></div>
<p class="para">Una volta completata l'installazione, il proxy (vuoto) è pronto all'indirizzo "http://INDIRIZZO_MIRROR:9999" e trovaerà i repository Ubuntu sotto "/ubuntu". Affinché vmbuilder possa usarlo, è necessario usare l'opzione <span class="em emphasis">--mirror</span>:</p>
<div class="code"><pre class="contents ">--mirror=URL  Use Ubuntu mirror at URL instead of the default, which
              is http://archive.ubuntu.com/ubuntu for official
              arches and http://ports.ubuntu.com/ubuntu-ports
              otherwise
</pre></div>
<p class="para">Aggiungere quindi al comando:</p>
<div class="screen"><pre class="contents "><span class="cmd command">--mirror http://INDIRIZZO_MIRROR:9999/ubuntu</span>
</pre></div>
<div class="note" title="Annotazione"><div class="inner"><div class="region"><div class="contents">
            <p class="para">
            The mirror address specified here will also be used in the <span class="file filename">/etc/apt/sources.list</span> of the newly created 
            guest, so it is useful to specify here an address that can be resolved by the guest or to plan on reseting this address 
            later on.
            </p>
          </div></div></div></div>
</div></div>
</div></div>
<div class="sect4 sect" id="jeos-local-mirror"><div class="inner">
<div class="hgroup"><h4 class="title">Installare un mirror locale</h4></div>
<div class="region"><div class="contents">
<p class="para">Se si è in un ambiente molto grande, può aver senso creare un mirror locale dei repository di Ubuntu. Il pacchetto "apt-mirror" fornisce uno script per la gestione delle operazioni di mirror. È utile avere almeno 20GB di spazio per ogni rilascio supportato e architettura.</p>
<p class="para">
            By default, <span class="app application">apt-mirror</span> uses the configuration file in <span class="file filename">/etc/apt/mirror.list</span>. 
            As it is set up, it will replicate only the architecture of the local machine. If you would like to support other 
            architectures on your mirror, simply duplicate the lines starting with “deb”, replacing the deb keyword by /deb-{arch}
            where arch can be i386, amd64, etc... For example, on an amd64 machine, to have the i386 archives as well, you will have
            (some lines have been split to fit the format of this document):
            </p>
<div class="code"><pre class="contents ">deb  http://archive.ubuntu.com/ubuntu precise main restricted universe multiverse 
/deb-i386  http://archive.ubuntu.com/ubuntu precise main restricted universe multiverse

deb  http://archive.ubuntu.com/ubuntu precise-updates main restricted universe multiverse 
/deb-i386  http://archive.ubuntu.com/ubuntu precise-updates main
 restricted universe multiverse 

deb http://archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse 
/deb-i386  http://archive.ubuntu.com/ubuntu precise-backports main
 restricted universe multiverse 

deb http://security.ubuntu.com/ubuntu precise-security main restricted universe multiverse 
/deb-i386  http://security.ubuntu.com/ubuntu precise-security main
 restricted universe multiverse 

deb http://archive.ubuntu.com/ubuntu precise main/debian-installer
 restricted/debian-installer universe/debian-installer multiverse/debian-installer 
/deb-i386 http://archive.ubuntu.com/ubuntu precise main/debian-installer
 restricted/debian-installer universe/debian-installer multiverse/debian-installer 
</pre></div>
<p class="para">I pacchetti dei sorgenti non sono stati inclusi nel mirror dato che non sono molto usati quanto i binari e occupano molto spazio. È comunque possibile aggiungerli facilmente all'elenco.</p>
<p class="para">Una volta terminata l'operazione di duplicazione del mirror (può durare molto), è necessario configurare Apache affinché i file del mirror (in <span class="file filename">/var/spool/apt-mirror</span> se non è stato modificato il valore predefinito) siano pubblicati dal proprio server Apache. Per maggiori informazioni su Apache, consultare <a class="xref" href="httpd.html" title="HTTPD - Server web Apache2">HTTPD - Server web Apache2</a>.</p>
</div></div>
</div></div>
</div>
</div></div>
</div>
</div></div>
<div class="sect2 sect" id="jeos-package-application"><div class="inner">
<div class="hgroup"><h2 class="title">Pacchettizzare l'applicativo</h2></div>
<div class="region"><div class="contents">
<p class="para">Sono disponibili due opzioni:</p>
<div class="list itemizedlist"><ul class="list itemizedlist">
<li class="list itemizedlist">
	    <p class="para">Il metodo raccomandato è quello di creare un pacchetto <span class="em emphasis">Debian</span>. Dato che questo argomento esula da questa guida, non verrà spiegato questo metodo e si rimanda alla <a class="ulink" href="https://wiki.ubuntu.com/PackagingGuide" title="https://wiki.ubuntu.com/PackagingGuide">Ubuntu Packaging Guide</a>. In questo caso è anche utile creare un repository per contenere il pacchetto in modo tale che gli aggiornamenti vengano prelevati da questo. Per ulteriori informazioni, consultare <a class="ulink" href="http://www.debian-administration.org/articles/286" title="http://www.debian-administration.org/articles/286">Debian Administration</a>.</p> 
          </li>
<li class="list itemizedlist">
	    <p class="para">Installare l'applicativo nella directory <span class="file filename">/opt</span> come raccomandato dalle <a class="ulink" href="http://www.pathname.com/fhs/" title="http://www.pathname.com/fhs/">linee guida di FHS</a>.</p> 
          </li>
</ul></div>
<p class="para">In questo caso viene usato <span class="app application">Limesurvey</span> come esempio di applicazione web per cui creare un applicativo virtuale. Come accennato precedentemente. è disponibile un pacchetto di questa applicazione attraverso gli archivi PPA (Personal Package Archive).</p>
</div></div>
</div></div>
<div class="sect2 sect" id="jeos-additions"><div class="inner">
<div class="hgroup"><h2 class="title">Utili accorgimenti</h2></div>
<div class="region">
<div class="contents"></div>
<div class="sect3 sect" id="jeos-automatic-updates"><div class="inner">
<div class="hgroup"><h3 class="title">Configurare gli aggiornamenti automatici</h3></div>
<div class="region"><div class="contents">
<p class="para">Affinché il sistema sia configurato per aggiornarsi automaticamente a scadenze determinate, basta installare il pacchetto <span class="app application">unattended-upgrades</span>. Aggiungere quindi quanto segue al comando:</p>
<div class="screen"><pre class="contents "><span class="cmd command">--addpkg unattended-upgrades</span>
</pre></div>
<p class="para">Dato che il pacchetto dell'applicazione è stata inserito nel PPA, il processo di aggiornamento non aggiornerà solamente il sistema, ma anche l'applicazione ogni qualvolta ci sia una versione aggiornata nel PPA.</p>
</div></div>
</div></div>
<div class="sect3 sect" id="jeos-acpi"><div class="inner">
<div class="hgroup"><h3 class="title">Gestire gli eventi ACPI</h3></div>
<div class="region"><div class="contents">
<p class="para">Affinché la macchina virtuale possa gestire gli eventi come riavvio e arresto che le vengono inviati, è utile installare anche il pacchetto "acpid". Aggiungere quindi quanto segue al comando:</p>
<div class="screen"><pre class="contents "><span class="cmd command">--addpkg acpid</span>
</pre></div>
</div></div>
</div></div>
</div>
</div></div>
<div class="sect2 sect" id="jeos-final-command"><div class="inner">
<div class="hgroup"><h2 class="title">Il comando finale</h2></div>
<div class="region"><div class="contents">
<p class="para">Ecco il comando con tutte le opzioni presentate poco sopra:</p>
<div class="screen"><pre class="contents "><span class="cmd command">sudo vmbuilder kvm ubuntu --suite precise --flavour virtual --arch i386 -o \ 
         --libvirt qemu:///system --ip 192.168.0.100 --hostname myvm \
         --part vmbuilder.partition --user user --name user --pass default \
         --addpkg apache2 --addpkg apache2-mpm-prefork --addpkg apache2-utils \
         --addpkg apache2.2-common --addpkg dbconfig-common \ 
         --addpkg libapache2-mod-php5 --addpkg mysql-client --addpkg php5-cli \ 
         --addpkg php5-gd --addpkg php5-ldap --addpkg php5-mysql \
         --addpkg wwwconfig-common --addpkg mysql-server \
         --addpkg unattended-upgrades --addpkg acpid --ppa nijaba \
         --mirror http://mirroraddress:9999/ubuntu 
         </span>
</pre></div>
</div></div>
</div></div>
<div class="sect2 sect" id="jeos-resources"><div class="inner">
<div class="hgroup"><h2 class="title">Risorse</h2></div>
<div class="region"><div class="contents">
<p class="para">Per avere maggiori informaioni, per porre qualche domanda o per lasciare dei suggerimenti, contattare l'«Ubuntu Server Team» presso:</p>
<div class="list itemizedlist"><ul class="list itemizedlist">
<li class="list itemizedlist">
          <p class="para">IRC: #ubuntu-server on freenode</p>
        </li>
<li class="list itemizedlist">
          <p class="para">Mailing list: <a class="ulink" href="https://lists.ubuntu.com/mailman/listinfo/ubuntu-server" title="https://lists.ubuntu.com/mailman/listinfo/ubuntu-server">ubuntu-server at lists.ubuntu.com</a></p>
        </li>
<li class="list itemizedlist">
          <p class="para">
          Also, see the <a class="ulink" href="https://help.ubuntu.com/community/JeOSVMBuilder" title="https://help.ubuntu.com/community/JeOSVMBuilder">JeOSVMBuilder Ubuntu Wiki</a> page.
          </p>
        </li>
</ul></div>
</div></div>
</div></div>
</div>
<div class="links nextlinks">
<a class="nextlinks-prev" href="libvirt.html" title="libvirt">Indietro</a>  |  <a class="nextlinks-next" href="uec.html" title="UEC">Avanti</a>
</div>
<div class="clear"></div>
</div>
<div id="pagebottom"></div>
</div></div>
</div>
<div id="content-bottom"></div>
</div>
<div id="footer"><div class="container">
<div id="ubuntulinks">Ubuntu e Canonical sono marchi registrati da Canonical Ltd. <br>
Questa opera è pubblicata sotto una <span style="text-decoration: underline;"><a href="http://help.ubuntu-it.org/legal.html">licenza</a></span> Creative Commons.
</div>
<div id="pagebottom"></div>
</div></div>
</body>
</html>