<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>de.straba.us &#187; ubiquity</title>
	<atom:link href="http://de.straba.us/tag/ubiquity/feed/" rel="self" type="application/rss+xml" />
	<link>http://de.straba.us</link>
	<description>destrabauz thoughts</description>
	<lastBuildDate>Fri, 20 Jan 2012 13:55:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Estendere le azioni dell&#8217;installer ubiquity</title>
		<link>http://de.straba.us/2008/07/29/estendere-le-azioni-dellinstaller-ubiquity/</link>
		<comments>http://de.straba.us/2008/07/29/estendere-le-azioni-dellinstaller-ubiquity/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 10:45:02 +0000</pubDate>
		<dc:creator>napo</dc:creator>
				<category><![CDATA[software libero]]></category>
		<category><![CDATA[ubiquity]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://de.straba.us/2008/07/29/aggiungere-azioni-ad-ubiquity-sulla-macchina-ospite/</guid>
		<description><![CDATA[Nei precedenti post e&#8217; stato preso in esame come creare un livecd installabile, personalizzandolo non solo nei pacchetti ma anche automatizzando le richieste fatte dall&#8217;installer (ubiquity). Questo pero&#8217; spesso non e&#8217; sempre sufficiente ai fine di una installazione personalizzata. Molte volte occorre andare a modificare alcuni file di configurazione o cancellare qualche file utilizzato durante [...]]]></description>
			<content:encoded><![CDATA[<p>Nei precedenti post e&#8217; stato preso in esame come creare un livecd installabile, personalizzandolo non solo nei pacchetti ma anche automatizzando le richieste fatte dall&#8217;installer (ubiquity).</p>
<p>Questo pero&#8217; spesso non e&#8217; sempre sufficiente ai fine di una installazione personalizzata.</p>
<p>Molte volte occorre andare a modificare alcuni file di configurazione o cancellare qualche file utilizzato durante l&#8217;installazione non più necessario.</p>
<p>Le soluzioni praticabili sono diverse:</p>
<ul>
<li>modificare i sorgenti dei pacchetti .deb e ricostruire i pacchetti</li>
<li>utilizzare un file preseed che, a sua volta, chiama uno script da eseguire a fine operazioni di ubiquity</li>
<li>estendere le azioni di ubiquity verso la macchina ospite attraverso degli script</li>
</ul>
<p>La prima soluzione è sicuramente la più elegante. Necessita però della creazione di un repository di pacchetti (che può anche essere ospitato sul cd). Soluzione praticabile, ma sconsigliata qualora la necessità sia solo quella di modificare qualche variabile (es. il tema di gnome predefinito).<br />
La seconda è stata affrontata nel precedente post dal titolo <a href="http://de.straba.us/2008/07/18/automatizzare-linstaller-ubiquity/#preseed">http://de.straba.us/2008/07/18/automatizzare-linstaller-ubiquity/</a>.</p>
<p>L&#8217;ultima proposta non discosta molto dalla seconda, se non per il fatto che gli script saranno ospitati nel file iso compresso con squashfs.</p>
<p>La directory dove ubiquity ospita i vari script che vengono eseguiti sulla macchina di destinazione si trova in<br />
<code>/usr/lib/ubiquity/target-config</code><br />
Il nome di ogni script comincia con un numero che indica l&#8217;ordine con cui viene eseguito.</p>
<p>questo il codice dello script che viene utilizzato da ubiquity per generare il file md5 del file xorg.conf</p>
<p><code><br />
#! /bin/sh<br />
set -e</code></p>
<p>if [ -f /etc/X11/xorg.conf ]; then<br />
cp -a /etc/X11/xorg.conf /target/etc/X11/xorg.conf<br />
# requires x11-common (&gt;= 7.0.0-0ubuntu1)<br />
mkdir -p /target/var/lib/x11<br />
chroot /target sh -c &#8216;md5sum /etc/X11/xorg.conf &gt; /var/lib/x11/xorg.conf.md5sum&#8217;<br />
fi</p>
<p>exit 0</p>
<p>Leggendo lo script si capisce che la directory con cui viene vista la macchina ospite e&#8217; <em>/target</em><br />
In particolare il comando<br />
<em>chroot /target sh -c &#8216;md5sum /etc/X11/xorg.conf &gt; /var/lib/x11/xorg.conf.md5sum&#8217;</em><br />
esegue il calcolo del md5 del file <em>xorg.conf</em> copiandolo in <em>/var/lib/x11</em> utilizzando il comando chroot (per cambiare la root).</p>
<p>Venendo a quanto scritto nel post <a href="http://de.straba.us/2008/07/16/howto-creare-un-ubuntu-live-cd/">howto: creare un ubuntu live cd</a> &#8211; in particolare al <a href="http://de.straba.us/2008/07/16/howto-creare-un-ubuntu-live-cd/#2">passo 2</a> &#8211; gli script che vorremmo far eseguire devono essere copiati in<br />
<em>$HOME/chroot/usr/lib/ubiquity/target-config</em></p>
<p>Per l&#8217;utente alle prime armi e&#8217; consigliato accodare le operazioni su uno degli script giá esistenti.</p>
]]></content:encoded>
			<wfw:commentRss>http://de.straba.us/2008/07/29/estendere-le-azioni-dellinstaller-ubiquity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automatizzare l&#8217;installer ubiquity</title>
		<link>http://de.straba.us/2008/07/18/automatizzare-linstaller-ubiquity/</link>
		<comments>http://de.straba.us/2008/07/18/automatizzare-linstaller-ubiquity/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 13:16:35 +0000</pubDate>
		<dc:creator>napo</dc:creator>
				<category><![CDATA[software libero]]></category>
		<category><![CDATA[ubiquity]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://de.straba.us/?p=4</guid>
		<description><![CDATA[L&#8217;howto creare un ubuntu live cd puo&#8217; essere utilizzato anche per creare cd di installazione personalizzati. Se nel livecd e&#8217; presente il tool ubiquity (l&#8217;installer grafico di ubuntu), l&#8217;operazione di installazione non fara&#8217; altro che copiare tutto il contenuto del cd sulla macchina ospite una volta preparato tutto l&#8217;ambiente (riconoscimento hardware, partizionamento del disco, configurazione [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;howto <a href="http://de.straba.us/2008/07/16/howto-creare-un-ubuntu-live-cd/">creare un ubuntu live cd</a> puo&#8217; essere utilizzato anche per creare cd di installazione personalizzati.<br />
Se nel livecd e&#8217; presente il tool ubiquity (l&#8217;installer grafico di ubuntu), l&#8217;operazione di installazione non fara&#8217; altro che copiare tutto il contenuto del cd sulla macchina ospite una volta preparato tutto l&#8217;ambiente (riconoscimento hardware, partizionamento del disco, configurazione utenti, lingua, tastiera ecc&#8230;).<br />
In molte occasioni si ha la necessita&#8217; di voler fare in modo che le domande fatte all&#8217;utente per creare l&#8217;ambiente necessario all&#8217;installazione siano automatizzate.</p>
<p>Tale operazione e&#8217; possibile configurando due file: quello della configurazione del boot loader del cd di installazione (<em>isolinux.cfg</em>) e creando un file di istruzioni <em>preseed</em> (le stesse utilizzate da debian-installer con qualche aggiunta) che verra&#8217; interpretato da ubiquity.</p>
<p>Nello specifico il primo file (invocato da isolinux al suo avvio) non fa altro che informare il livecd di eseguire ubiquity, con opportuni parametri a cui successivamente associare l&#8217;opportuno file preseed con tutte le informazioni di automazione.</p>
<p><a name="isolinux"><br />
<h2>isolinux.cfg</h2>
<p></a><br />
Questo un esempio di <em>isolinux.cfg </em><br />
(maggiori dettagli sono descritti al <a href="http://de.straba.us/2008/07/16/howto-creare-un-ubuntu-live-cd/#3">3</a> del post di riferimento a questo articolo)</p>
<p><code><br />
LABEL install<br />
  menu label ^Install<br />
  kernel /casper/vmlinuz<br />
  append automatic-ubiquity noprompt only-ubiquity file=/cdrom/preseed/install.seed boot=casper initrd=/casper/initrd.gz quiet --<br />
</code></p>
<p>L&#8217;istruzione che richiama sia ubiquity e il relativo preseed file e&#8217; contenuta nella voce <em>append</em><br />
Nei dettagli:</p>
<ul>
<li><em>automatic-ubiquity</em>: informa che ubiquity deve essere avviato in automatico</li>
<li><em>only-ubiquity</em>: ubiquity sara&#8217; l&#8217;unica applicazione che verra&#8217; mostrata all&#8217;utente</li>
<li><em>file=/cdrom/preseed/install.seed</em>: si tratta del percorso del file seed (in questo caso install.seed) che verra&#8217; eseguito dal sistema
</ul>
<p>I parametri possono essere inseriti manualmente.<br />
Il percorso del file di preseed puo&#8217; essere anche un indirizzo web. In tal caso la sintassi e&#8217;<br />
<em>url=http://indirizzo.del.server/file.preseed</em></p>
<p><a name="preseed"></p>
<h2>Il file preseed</h2>
<p></a><br />
Per una questione di ordine si e&#8217; scelto di copiare il file all&#8217;interno della directory preseed (mkdir -p $HOME/work/image/preseed).<br />
Esempi di file preseed se ne trovano diversi in rete.<br />
Quello qui proposto permette di avere una installazione priva di alcuna domanda all&#8217;utente, che formatta l&#8217;intero disco rigido e crea un utente con relativa password.<br />
Le righe introdotte dal simbolo <em>#</em> sono commenti<br />
<code><br />
# Impostazione del lingua usata dall'installatore<br />
ubiquity        languagechooser/language-name   select  English<br />
# Impostazione del paese<br />
ubiquity        countrychooser/shortlist        select  IT<br />
# Impostazione della time zone<br />
ubiquity        time/zone       select  Europe/Rome<br />
# Impostazione della tabella caratteri utilizzata dall'installatore<br />
ubiquity        debian-installer/locale select  en_US.UTF-8<br />
# Altri possibili set di caratteri utilizzabili<br />
ubiquity        localechooser/supported-locales multiselect     it_IT.UTF-8<br />
# ad uso interno<br />
console-setup   console-setup/layoutcode        string  it<br />
# origine della tastiera<br />
console-setup   console-setup/layout    select  Italian<br />
# layout della tastiera<br />
console-setup   console-setup/variantcode       select  U.S. English<br />
# insieme di caratteri utilizzabili nella console<br />
console-setup   console-setup/codeset   select  . Combined - Latin; Slavic Cyrillic; Hebrew; basic Arabic<br />
# metodo di partizionamento - attenzione che la frase deve essere uguale<br />
# a quella scelta per l'opzione languagechooser/language-name<br />
ubiquity        partman-auto/init_automatically_partition       select  Guided - use entire disk<br />
# ad uso interno<br />
ubiquity        partman-auto/method     string  regular<br />
# schema di partizionamento (vale discorso sulla lingua)<br />
ubiquity        partman-auto/choose_recipe      select  All files in one partition (recommended for new users)<br />
# Conferma di scrittura nella nuova partizione<br />
ubiquity        partman/confirm_write_new_label boolean true<br />
ubiquity        partman/choose_partition        select  Finish partitioning and write changes to disk<br />
ubiquity        partman/confirm boolean true<br />
# Nome completo del nuovo utente<br />
ubiquity        passwd/user-fullname    string  Napo<br />
user-setup      passwd/user-fullname    string  Napo<br />
# username scelto per l'account<br />
ubiquity        passwd/username string  napo<br />
user-setup      passwd/username string  napo<br />
# password (criptata) scelta per l'utente<br />
ubiquity        passwd/user-password-crypted password $1$owHRIB1k$XrCXGTqxu8mYe7.OBPiGl.<br />
user-set        passwd/user-password-crypted password $1$owHRIB1k$XrCXGTqxu8mYe7.OBPiGl.</p>
<p># Select operating systems to import from:<br />
ubiquity        migration-assistant/partitions  multiselect</p>
<p># Non visualizza il sommario a fine installazione<br />
ubiquity        ubiquity/summary        note</p>
<p>#Esegue lo script post_script.sh a fine installazione<br />
ubiquity        ubiquity/success_command        string /target/post_script.sh<br />
</code></p>
<p>Per generare la password criptata si deve fare uso di <em>mkpasswd</em> con opportuni parametri.<br />
Qui sotto un esempio in cui la password scelta e&#8217; &#8220;<em>nontelodico</em>&#8221;<br />
<code>echo nontelodico | mkpasswd -s -H md5</code></p>
<p>L&#8217;ultima istruzione del file preseed di esempio indica che, a fine delle azioni di installazione di ubiquity deve essere eseguito uno script.<br />
Questa operazione torna spesso utile per fare ulteriori personalizzazioni all&#8217;installazione.<br />
Un aspetto fondamentale di questa operazione e&#8217; quello di tenere ben presente i percorsi con cui raggiungere le varie periferiche.<br />
<em>Ubiquity</em>, una volta preparato il disco rigido (partizionamento e formattazione), collega quest&#8217;ultimo nel path <em>/target</em>.<br />
Nel caso specifico, dato che ubiquity copia l&#8217;intero contenuto del cd &#8211; esclusi i file del <em>manifest</em> destinati al desktop (vd. <a href="http://de.straba.us/2008/07/16/howto-creare-un-ubuntu-live-cd/#3">passo 3</a>) sul disco rigido, lo script e&#8217; stato inserito nella radice file system compresso con squashfs (ossia in $HOME/work/chroot/ &#8211; vedi <a href="http://de.straba.us/2008/07/16/howto-creare-un-ubuntu-live-cd/#1">passo 1</a>).</p>
<p><strong>Info utili:</strong><br />
<a href="https://wiki.ubuntu.com/Ubiquity">https://wiki.ubuntu.com/Ubiquity</a></p>
]]></content:encoded>
			<wfw:commentRss>http://de.straba.us/2008/07/18/automatizzare-linstaller-ubiquity/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

