Apt-mirror: differenze tra le versioni

Da PNLUG.
(Mount bind)
(Install Nginx)
 
(11 versioni intermedie di uno stesso utente non sono mostrate)
Riga 140: Riga 140:
 
== Configurazione ==
 
== Configurazione ==
  
 +
=== Accesso anonimo ===
 
Per rendere possibile l'accesso anonimo dobbiamo creare e configurare il seguente file :
 
Per rendere possibile l'accesso anonimo dobbiamo creare e configurare il seguente file :
  
Riga 164: Riga 165:
 
Un mount bind invece prende un albero di directory esistente e lo replica sotto un altro punto . Le directory e i file sono le stesse dell'originale . Qualsiasi modifica su un lato si riflette immediatamente sul lato opposto , in quanto le due viste mostrano gli stessi dati
 
Un mount bind invece prende un albero di directory esistente e lo replica sotto un altro punto . Le directory e i file sono le stesse dell'originale . Qualsiasi modifica su un lato si riflette immediatamente sul lato opposto , in quanto le due viste mostrano gli stessi dati
  
 +
==== Applicazione del mount bind ====
 +
 +
 +
  # mount --bind /opt/apt-mirror/mirror/ftp.us.debian.org/  /srv/ftp/
 +
 +
Se volete potete aggiungere una seconda architettura :
 +
 +
  # mount --bind /opt/apt-mirror/mirror/archive.ubuntu.com/  /srv/ftp/
 +
 +
===== rc.local =====
 +
 +
Come suggerito dall'articolo è possibile montare automaticamente modificanto il file /etc/rc.local
 +
 +
  # nano /etc/rc.local
 +
 +
aggiungendo prima di exit 0
 +
 +
  sleep 5
 +
  sudo mount --bind  /opt/apt-mirror/mirror/ftp.us.debian.org/ /srv/ftp/
 +
 +
=WebServer=
 +
Alternativo al server ftp si può utilizzare un web server.
 +
 +
==Nginx==
 +
 +
===Install Nginx===
 +
 
 +
#apt-get install nginx
 +
 +
====Testa l'installazione====
 +
 +
Aprite il vostro browser su http://your_server_ip
 +
 +
oppure da terminale
 +
 +
  $curl your_server_ip
 +
 +
qualcosa simile a questo dovrebbe uscire :
 +
 +
<pre>
 +
<!DOCTYPE html>
 +
<html>
 +
<head>
 +
<title>Welcome to nginx on Debian!</title>
 +
<style>
 +
    body {
 +
        width: 35em;
 +
        margin: 0 auto;
 +
        font-family: Tahoma, Verdana, Arial, sans-serif;
 +
    }
 +
</style>
 +
</head>
 +
</pre>
 +
 +
 +
==== Configurazione  (da testare) ====
 +
 +
 +
2. Remove the default configuration file
 +
1
 +
 +
rm /etc/nginx/sites-enabled/default
 +
 +
3. Create a new configuration by creating /etc/nginx/sites-available/ubuntu-mirror with the following content:
 +
1
 +
2
 +
3
 +
4
 +
5
 +
6
 +
7
 +
8
 +
9
 +
10
 +
11
 +
12
 +
13
 +
14
 +
15
 +
16
 +
17
 +
 +
server {
 +
        listen  80 default;
 +
        server_name susrtumi1.health.local susrtumi1;
 +
        gzip off;
 +
 +
        access_log  /var/log/nginx/ubuntu-mirror-access.log;
 +
 +
        location /ubuntu {
 +
                alias  /mirror/www/at.archive.ubuntu.com;
 +
                autoindex on;
 +
        }
 +
 +
        location /ubuntu-security {
 +
                alias /mirror/www/security.ubuntu.com;
 +
                autoindex on;
 +
        }
 +
}
 +
 +
4. Relink the new configuration file to be used by nginx:
 +
1
 +
2
 +
 +
cd /etc/nginx/sites-enabled
 +
ln -s ../sites-available/ubuntu-mirror
 +
 +
5. Set the correct permissions:
 +
1
 +
2
 +
 +
chown -R apt-mirror:www-data /mirror
 +
chmod -R 775 /mirror
 +
 +
6. Restart nginx
 +
1
 +
 +
/etc/init.d/nginx restar
 +
 +
http://www.matrix44.net/cms/notes/gnulinux/create-a-local-ubuntu-mirror
 +
http://www.plankandwhittle.com/a-debianor-ubuntu-mirror-to-call-your-own/
 +
 +
 +
 +
 +
 +
==apache==
 +
 +
http://marcksonjr.blogspot.it/2015/05/como-configurar-um-repositorio-local.html
 +
 +
===Configurazione===
 +
 +
Fermiamo il servizio per poterlo configurare.
 +
 +
  #systemctl stop nginx.service
 +
 +
=Tip 'n Trick=
 +
 +
== Trovare il mirror migliore ==
 +
 +
Prima d'iniziare la clonazione del mirror, può avere senso investigare su quale sia il più veloce.
 +
Come sappiamo molti elementi influenzano la velocità di download da un repository :
 +
 +
*distanza geografica
 +
*tecnologia di connessione
 +
*provider
 +
 +
 +
e molti altri ...
 +
 +
Per scoprire quale mirror ci dà le migliori performance esiste un pacchetto
 +
 +
# apt-get install netselect-apt
 +
 +
 +
 
 
===Note===
 
===Note===
  
Riga 179: Riga 336:
 
http://www.matrix44.net/cms/notes/gnulinux/create-a-local-ubuntu-mirror<br/>
 
http://www.matrix44.net/cms/notes/gnulinux/create-a-local-ubuntu-mirror<br/>
 
http://www.pendrivelinux.com/how-to-set-up-your-own-debian-linux-mirror/<br/>
 
http://www.pendrivelinux.com/how-to-set-up-your-own-debian-linux-mirror/<br/>
 +
https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-debian-8<br/>
 +
https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units<br/>
 +
http://marcksonjr.blogspot.it/2015/05/como-configurar-um-repositorio-local.html<br/>
 +
<br/>
 
<br/>
 
<br/>
 
<br/>
 
<br/>

Versione attuale delle 16:18, 7 apr 2016

Mirror dei Repository

Spesso, durante i nostri install party, la banda è condivisa su molte stazioni di lavoro. questo comporta tempi di update e install delle distro piuttosto lunghi.

Una prima soluzione potrebbe essere un proxy cache che funziona bene come tecnica ma necessita di una banda funzionante alla prima richiesta dei pacchetti.

Una seconda soluzione, per un completa installazione off line è la completa replica dei repository della distro in in container locale. L'idea è di avere spazio disco, copiare in locale tutti i pacchetti della distro per poterli utilizzare off line.

Pachetto apt-mirror

Lo strumento apt-mirror è sviluppato appositamente per questo tipo d'esigenza : clonare un repository. Lo si trova nei pacchetti debian (ad oggi la stable è jessie e lo si trova nella versione apt-mirror (0.5.1-1)).
Un interessante articolo ne propone l'utilizzo assieme ad un FTP Server,vedremo in una seconda fase come utilizzare tale server.

Prerequisiti

Spazio disco

Purtroppo sono necessari circa 60 GB per repository per architettura. Ad esempio se intendete preparare un repo per amd64 e i386 dovrete prevedere circa 120 GB di spazio.

connettività

L'accesso ad internet o ad un repo funzionante è condizione necessaria.

Installazione

# apt-get install apt-mirror

Configurazione

# nano /etc/apt/mirror.list

File esempio

Per costruire un mirror Ubuntu e Debian ho utilizzato il seguente esempio :

############# config ##################                                                          #Notes by Roby.deb
#
#set base_path    /var/spool/apt-mirror
set base_path /opt/apt-mirror                                                                    #percorso dove salvare il clone del mirror
#
# set mirror_path  $base_path/mirror
# set skel_path    $base_path/skel
# set var_path     $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch  <running host architecture>
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
set nthreads     20
set _tilde 0
#
############# end config ##############

#deb http://ftp.us.debian.org/debian stable main contrib non-free                                #da usare in combinata con set defaultarch  <running host architecture>
#deb-src http://ftp.us.debian.org/debian stable main contrib non-free                            #per maggiore flessibilità ho preferito esplicitare la versione

# mirror additional architectures
#deb-alpha http://ftp.us.debian.org/debian stable main contrib non-free
#deb-amd64 http://ftp.us.debian.org/debian stable main contrib non-free
                                                                                                 #Potete scegliere il repo che preferite, nell'architettura desiderata.
deb-amd64 http://ftp.us.debian.org/debian stable main contrib non-free                           #repo stable debian
deb-amd64 http://ftp.us.debian.org/debian stable-updates main contrib non-free                   #repo stable updates debian
deb-amd64 http://security.debian.org/ stable/updates main contrib non-free                       #repo security 
                                                                                          

#deb-armel http://ftp.us.debian.org/debian stable main contrib non-free
#deb-hppa http://ftp.us.debian.org/debian stable main contrib non-free
#deb-i386 http://ftp.us.debian.org/debian stable main contrib non-free
#deb-ia64 http://ftp.us.debian.org/debian stable main contrib non-free
#deb-m68k http://ftp.us.debian.org/debian stable main contrib non-free
#deb-mips http://ftp.us.debian.org/debian stable main contrib non-free
#deb-mipsel http://ftp.us.debian.org/debian stable main contrib non-free
#deb-powerpc http://ftp.us.debian.org/debian stable main contrib non-free
#deb-s390 http://ftp.us.debian.org/debian stable main contrib non-free
#deb-sparc http://ftp.us.debian.org/debian stable main contrib non-free

## Ubuntu trusty (14.04)
deb-amd64 http://archive.ubuntu.com/ubuntu trusty main restricted universe multiverse            #repo main ubuntu
deb-amd64 http://archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse   #repo security ubuntu
deb-amd64 http://archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse    #repo updates ubuntu


clean http://ftp.us.debian.org/debian                                                            #il comando clean pulisce i pacchetti obsoleti
clean http://archive.ubuntu.com/ubuntu                                                           #il comando clean pulisce i pacchetti obsoleti

TO DO

La cartella /opt/apt-mirror non esiste di default, andrà creata con


  # mkdir -p /opt/apt-mirror

Avvio apt-mirror

Il comando

  # apt-mirror

avvia il "download dei pacchetti e la "clonazione del repo".

Downloading 90 index files using 20 threads...
Begin time: Wed Apr  6 15:52:56 2016
[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]...
End time: Wed Apr  6 15:52:57 2016

Processing tranlation indexes: [TTT]

Downloading 44 translation files using 20 threads...
Begin time: Wed Apr  6 15:52:57 2016
[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]...
End time: Wed Apr  6 15:52:57 2016

Processing indexes: [P


se non vi sono errori potete procedere il tutto sta funzionando.

Errori

In caso di errori, valgono gli stessi controlli che vengono svolti per i repo :

  • controllate la vostra connettività di rete
  • controllate l'accesso ai mirror (anche con il browser)
  • controllate lo spazio su disco.

Server FTP

L'articolo suggerisce l'addozione del server proftpd-basic.
Anche proftpd-basic è disponibile in Jessie nella versione 1.3.5.

Installazione

 # apt-get install proftpd-basic

Configurazione

Accesso anonimo

Per rendere possibile l'accesso anonimo dobbiamo creare e configurare il seguente file :

 # nano /etc/proftpd/conf.d/anonymous.conf
<Anonymous ~ftp>
   User                    ftp
   Group                nogroup
   UserAlias         anonymous ftp
   RequireValidShell        off
#   MaxClients                   10
   <Directory *>
     <Limit WRITE>
       DenyAll
     </Limit>
   </Directory>
 </Anonymous>

Mount bind

Un mount bind è una visualizzazione alternativa di un albero di directory . Solitamente , mount crea una vista di un dispositivo di memorizzazione , come un albero di directory .
Un mount bind invece prende un albero di directory esistente e lo replica sotto un altro punto . Le directory e i file sono le stesse dell'originale . Qualsiasi modifica su un lato si riflette immediatamente sul lato opposto , in quanto le due viste mostrano gli stessi dati

Applicazione del mount bind

 # mount --bind /opt/apt-mirror/mirror/ftp.us.debian.org/  /srv/ftp/

Se volete potete aggiungere una seconda architettura :

 # mount --bind /opt/apt-mirror/mirror/archive.ubuntu.com/  /srv/ftp/
rc.local

Come suggerito dall'articolo è possibile montare automaticamente modificanto il file /etc/rc.local

 # nano /etc/rc.local

aggiungendo prima di exit 0

 sleep 5
 sudo mount --bind  /opt/apt-mirror/mirror/ftp.us.debian.org/ /srv/ftp/

WebServer

Alternativo al server ftp si può utilizzare un web server.

Nginx

Install Nginx

#apt-get install nginx

Testa l'installazione

Aprite il vostro browser su http://your_server_ip

oppure da terminale

  $curl your_server_ip

qualcosa simile a questo dovrebbe uscire :

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx on Debian!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>


Configurazione (da testare)

2. Remove the default configuration file 1

rm /etc/nginx/sites-enabled/default

3. Create a new configuration by creating /etc/nginx/sites-available/ubuntu-mirror with the following content: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

server {

       listen   80 default;
       server_name susrtumi1.health.local susrtumi1;
       gzip off;

       access_log  /var/log/nginx/ubuntu-mirror-access.log;

       location /ubuntu {
               alias  /mirror/www/at.archive.ubuntu.com;
               autoindex on;
       }

       location /ubuntu-security {
               alias /mirror/www/security.ubuntu.com;
               autoindex on;
       }

}

4. Relink the new configuration file to be used by nginx: 1 2

cd /etc/nginx/sites-enabled ln -s ../sites-available/ubuntu-mirror

5. Set the correct permissions: 1 2

chown -R apt-mirror:www-data /mirror chmod -R 775 /mirror

6. Restart nginx 1

/etc/init.d/nginx restar

http://www.matrix44.net/cms/notes/gnulinux/create-a-local-ubuntu-mirror http://www.plankandwhittle.com/a-debianor-ubuntu-mirror-to-call-your-own/



apache

http://marcksonjr.blogspot.it/2015/05/como-configurar-um-repositorio-local.html

Configurazione

Fermiamo il servizio per poterlo configurare.

 #systemctl stop nginx.service

Tip 'n Trick

Trovare il mirror migliore

Prima d'iniziare la clonazione del mirror, può avere senso investigare su quale sia il più veloce. Come sappiamo molti elementi influenzano la velocità di download da un repository :

  • distanza geografica
  • tecnologia di connessione
  • provider


e molti altri ...

Per scoprire quale mirror ci dà le migliori performance esiste un pacchetto

# apt-get install netselect-apt


Note

Per approfondimenti si veda :

Sito ufficiale del progetto
esempio di configurazione

Link

https://apt-mirror.github.io/
http://www.tecmint.com/setup-local-repositories-in-ubuntu/
https://wiki.debian.org/SourcesList
https://www.howtoforge.com/local_debian_ubuntu_mirror
https://www.packtpub.com/books/content/create-local-ubuntu-repository-using-apt-mirror-and-apt-cacher
http://www.matrix44.net/cms/notes/gnulinux/create-a-local-ubuntu-mirror
http://www.pendrivelinux.com/how-to-set-up-your-own-debian-linux-mirror/
https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-debian-8
https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units
http://marcksonjr.blogspot.it/2015/05/como-configurar-um-repositorio-local.html