Aptly: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Khinn (talk | contribs)
Khinn (talk | contribs)
 
(69 intermediate revisions by the same user not shown)
Line 4: Line 4:


= Sissejuhatus =
= Sissejuhatus =
Aptly on väga võimekas tarkvarahoidla tarkvara, millega saab luua ja hallata suurel hulgal erineva eesmärgiga tarkvarahoidlaid. Aptly on kasulik abivahend süsteemiadministraatorile, kui on vajadus hallata suures koguses unix-laadseid operatsioonisüsteeme. Tarkvara abil on võimalik luua ja hallata erineva spetsiifikaga tarkvarahoidlaid. See hõlbustab tarkvaraprofiilide standardiseerimist suures organisatsioonis. Tänu aptly tarkvarahoidlaletele on võimalik näiteks uuendada servereid, millel puudub välisvõrgu ühendus või kus on välisvõrgu ühendus väga aeglane. Tarkvara arendajad ja levitajad saavad kasutada avaliku tarkvarahoidlat oma tarkvara levitamiseks jpm.<ref>[http://www.aptly.info/ Aptly]</ref><br>


= Paigaldamine ja näidisseadistus =
= Paigaldamine ja näidisseadistus =


Autor tegi läbi testkeskkonas näidisseadistuse. Näidisena loob autor ngnix tarkvara pakile ning tema sõltuvusprogrammidele peegel tarkvara hoidla (''repository'') ning näitab kuidas klient server tarkvara paki ning sõltuvusprogrammid paigaldada saab.  
Autor tegi testkeskkonas näidisseadistuse. Näidisena loob autor peegel tarkvarahoidla (''repository'') [[nginx]] tarkvara pakile ning tema sõltuvusprogrammidele ning näitab kuidas klient serveriga tarkvara paki ning sõltuvusprogrammid paigaldada saab.  
 
== Testkeskkonna eeldused ==


== Eeldused ==
Autor kasutas testkeskkonnas kahte serverit: Aptly server ja Klient server.


Autori testkeskkond:<br>
Aptly server: Ubuntu LTS 14.04 amd64<br>
Aptly server: Ubuntu LTS 14.04<br>
Nimi: Aptly<br>
IP: 172.16.8.85<br>
IP: 172.16.8.85<br>
Klient server: Ubuntu LTS 14.04<br>
Tarkvara: Vaikeväärtustega paigaldatud [https://wiki.itcollege.ee/index.php/Veebiserveri_labor Apache2] veebiserver.<br>
<br>
Klient server: Ubuntu LTS 14.04 amd64<br>
Nimi: Aptlyclient<br>
IP: 172.16.8.87<br>
IP: 172.16.8.87<br>
<br>
<br>
Vaike väärtustega eelseadistatud [https://wiki.itcollege.ee/index.php/Veebiserveri_labor Apache2] veebiserver aptly serveril.<br>


== Seadistamine ==
== Seadistamine ==


'''1. Paigaldame [[aptly]]'''
=== Aptly ===
 
Näidisülesande hõlpsamaks läbimiseks läheme root kasutajaks. Sellist pigaldamise viisi võib kasutada ainult testkeskkonnas!
 
<source lang="bash">
sudo -i root
</source>
 
Paigaldame aptly
 
<source lang="bash">
<source lang="bash">
apt-get update
apt-get update
Line 27: Line 42:
apt-get install aptly
apt-get install aptly
</source>
</source>
Muudame ära kodukataloogi "rootDir": asukoha failis /root/.aptly.conf
<source lang="bash">
nano /root/.aptly.conf
</source>
Konfiguratsiooni faili näidis
<source lang="bash">
  "rootDir": "/var/www/html",
  "downloadConcurrency": 4,
  "downloadSpeedLimit": 0,
  "architectures": [],
  "dependencyFollowSuggests": false,
  "dependencyFollowRecommends": false,
  "dependencyFollowAllVariants": false,
  "dependencyFollowSource": false,
  "gpgDisableSign": false,
  "gpgDisableVerify": false,
  "downloadSourcePackages": false,
  "ppaDistributorID": "ubuntu",
  "ppaCodename": "",
  "S3PublishEndpoints": {},
  "SwiftPublishEndpoints": {}
}
</source>
Loome peegel tarkvarahoidla. Antud juhendi kiiremaks läbimiseks loome tarkvarahoidla, milles hoitakse ainult tarkvara [[nginx]] ning tema sõltuvusprogramme
<source lang="bash">
aptly -architectures="amd64" mirror create -filter="nginx" -filter-with-deps nginx-main http://ee.archive.ubuntu.com/ubuntu/ trusty main restricted
</source>
<<!-- Warning style viksitud ArchWikist -->div style="padding: 5px; margin: 0.50em 0; background-color: #FFDDDD; border: thin solid #DDBBBB; overflow: hidden;">'''Märkus:''' välja tuleb filtreerida paketid, mis on mõeldud 64-bit operatsioonisüsteemile. Filtreerimiseks kasutatakse parameetrit -architectures="amd64"</div>
Peegel tarkvarahoidla loomine annab esialgu veateate, sest võtmepaare pole tekitatud. Käivitame veateate väljundis kuvatud käsu.<br>
Autori testkeskkonna puhul oli võtmepaar ja käsk selline:
<source lang="bash">
gpg --no-default-keyring --keyring trustedkeys.gpg --keyserver keys.gnupg.net --recv-keys 437D05B5 C0B21F32
</source>
Käivitame uuesti peegel tarkvarahoidla loomise käsu
<source lang="bash">
aptly -architectures="amd64" mirror create -filter="nginx" -filter-with-deps nginx-main http://ee.archive.ubuntu.com/ubuntu/ trusty main restricted
</source>
Jälgi käsu väljundit ning kui ühtegi veateadet ei teki, siis tuleb värskelt loodud peegel tarkvarahoidla uuendada
Uuendame peegel tarkvarahoidla. Käsu käivitamise tulemusel laetakse alla nginx tarkvara ja tema sõltuvusprogrammid
<source lang="bash">
aptly mirror update nginx-main
</source>
Kuna autor tekitas peegel tarkvarahoidla, siis tuleb sellest tekitada omakorda tõmmis. Peegel tarkvarahoidlat ei saa otse avaldada.
<source lang="bash">
aptly snapshot create nginx from mirror nginx-main
</source>
Kasutusele võtmiseks tuleb peegel tarkvarahoidla tõmmis avalikuks teha ehk avaldada (''publish''). Avalikustamise jaoks on aga vaja luua GPG võtme paar
=== GPG võtmepaari loomine ===
GPG võtmepaari loomiseks on aja kokkuhoiu mõttes kasulik kasutada suvalise numbri generaatori abitarkvara. Vastasel juhul peab pikalt ootama kuni operatsioonisüsteemil on piisavalt suvalisi arvutusi tehtud. <br>
Autor kasutas selleks [[rng-tools]] tarkvara.<ref>[https://www.howtoforge.com/helping-the-random-number-generator-to-gain-enough-entropy-with-rng-tools-debian-lenny rng-tools]</ref>
Paigaldame rng-tools tarkvara
<source lang="bash">
apt-get update
apt-get install rng-tools
</source>
Peale paigaldamist ava konfiguratsiooni fail
<source lang="bash">
nano /etc/default/rng-tools
</source>
lisa faili lõppu rida
<source lang="bash">
HRNGDEVICE=/dev/urandom
</source>
Käivita suvalise numbri generaatori ''daemon''
<source lang="bash">
/etc/init.d/rng-tools start
</source>
Loome võtmepaarid
<source lang="bash">
gpg --gen-key
</source>
=== Tarkvarahoidla tõmmise kasutusele võtmine ===
Käivita avalikustamise käsk. Juhul kui kasutasid võtmepaari loomisel salasõna (''passphrase''), siis nüüd on vaja see sisestada
<source lang="bash">
aptly publish snapshot nginx
</source>
Käsu väljund autori testkeskkonnas:
<source lang="bash">
root@aptly:~# aptly publish snapshot nginx
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
You need a passphrase to unlock the secret key for
user: "Kristjan Hinn <kristjan.hinn@test.com>"
2048-bit RSA key, ID A4553395, created 2015-06-10
gpg: gpg-agent is not available in this session
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
You need a passphrase to unlock the secret key for
user: "Kristjan Hinn <kristjan.hinn@test.com>"
2048-bit RSA key, ID A4553395, created 2015-06-10
gpg: gpg-agent is not available in this session
Snapshot nginx has been successfully published.
Please setup your webserver to serve directory '/var/www/html/public' with autoindexing.
Now you can add following line to apt sources:
  deb http://your-server/ trusty main
Don't forget to add your GPG key to apt with apt-key.
</source>
Väljundis öeldakse, et veebiserver tuleb seadistada vastavat kataloogi serveerima. Autor tegi testkeskkonnas uue virtuaalveebiserveri konfiguratsiooni failiga ''aptly.conf''. Automaatne indekseerimine on /var/www kataloogile [[apache2]] veebiserveri vaikeseadistustega juba lubatud.
<source lang="bash">
nano /etc/apache2/sites-enabled/aptly.conf
</source>
Konfiguratsiooni faili näidis:
<source lang="bash">
<VirtualHost *:80>
        ServerName aptly
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/public/
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
</source>
Käivitame uue veebisaidi
<source lang="bash">
a2ensite aptly.conf
</source>
Taaskäivitame veebiserveri
<source lang="bash">
service apache2 restart
</source>
Lisaks on väljundis öeldud, GPG avalik võti tuleb klient serveri peal importida käsuga ''apt-key''
<br>
Ekspordi avaliku võtme faili gpg.key
<source lang="bash">
gpg --export --armor > gpg.key
</source>
=== Testimine ===
Kopeerime gpg.key fail klient serverisse ning impordime avaliku võtme
<source lang="bash">
apt-key add gpg.key
</source>
Testimise mõttes, eemaldame /etc/apt/source.list failist kõik tarkvarahoidlad<br>
Teeme varukoopia
<source lang="bash">
cp /etc/apt/source.list /etc/apt/source.list.backup
</source>
Eemaldame kõik üleliigsed tarkvarahoidlad ning lisame ainult oma värskelt avalikustatud tarkvarahoidla
<source lang="bash">
echo deb http://172.16.8.85/ trusty main > /etc/apt/source.list
</source>
Testime tulemust
<<!-- Warning style viksitud ArchWikist -->div style="padding: 5px; margin: 0.50em 0; background-color: #fdd900; border: thin solid #fdd900; overflow: hidden;">'''Märkus:''' apt-get update käsk võib anda veateateid, kuna peegel tarkvarahoidla on tehtud ainult 64-bit operatsioonisüsteemile sobivaist tarkvarapakettidest. Veateateid võib testkeskkonna puhul eirata.</div>
<source lang="bash">
apt-get update
apt-get install nginx
</source>
Väljundis peaks olema näha, et tarkvara ja tema sõltuvusprogrammid installeeritakse kohaliku võrgu tarkvarahoidlast.
= Kokkuvõtteks =
Aptly tarkvarahoidla tarkvara on väga võimekas. Seadistamise viise on väga palju ning seetõttu võttis autor ühe kindla seadistamise viisi näidiseks. Aptly puhul võib paralleele tuua Windowsi maailma WSUS teenusega <ref>[https://technet.microsoft.com/en-us/windowsserver/bb332157.aspx Windows Server Update Services]</ref>, kuid aptly on tunduvalt rohkem kohandatav vastavalt süsteemide vajadustele.
==Viited==
<references />

Latest revision as of 14:21, 10 June 2015

Autor

Kristjan Hinn, AK31

Sissejuhatus

Aptly on väga võimekas tarkvarahoidla tarkvara, millega saab luua ja hallata suurel hulgal erineva eesmärgiga tarkvarahoidlaid. Aptly on kasulik abivahend süsteemiadministraatorile, kui on vajadus hallata suures koguses unix-laadseid operatsioonisüsteeme. Tarkvara abil on võimalik luua ja hallata erineva spetsiifikaga tarkvarahoidlaid. See hõlbustab tarkvaraprofiilide standardiseerimist suures organisatsioonis. Tänu aptly tarkvarahoidlaletele on võimalik näiteks uuendada servereid, millel puudub välisvõrgu ühendus või kus on välisvõrgu ühendus väga aeglane. Tarkvara arendajad ja levitajad saavad kasutada avaliku tarkvarahoidlat oma tarkvara levitamiseks jpm.[1]

Paigaldamine ja näidisseadistus

Autor tegi testkeskkonas näidisseadistuse. Näidisena loob autor peegel tarkvarahoidla (repository) nginx tarkvara pakile ning tema sõltuvusprogrammidele ning näitab kuidas klient serveriga tarkvara paki ning sõltuvusprogrammid paigaldada saab.

Testkeskkonna eeldused

Autor kasutas testkeskkonnas kahte serverit: Aptly server ja Klient server.

Aptly server: Ubuntu LTS 14.04 amd64
Nimi: Aptly
IP: 172.16.8.85
Tarkvara: Vaikeväärtustega paigaldatud Apache2 veebiserver.

Klient server: Ubuntu LTS 14.04 amd64
Nimi: Aptlyclient
IP: 172.16.8.87

Seadistamine

Aptly

Näidisülesande hõlpsamaks läbimiseks läheme root kasutajaks. Sellist pigaldamise viisi võib kasutada ainult testkeskkonnas!

sudo -i root

Paigaldame aptly

apt-get update

apt-get install aptly

Muudame ära kodukataloogi "rootDir": asukoha failis /root/.aptly.conf

nano /root/.aptly.conf

Konfiguratsiooni faili näidis

  "rootDir": "/var/www/html",
  "downloadConcurrency": 4,
  "downloadSpeedLimit": 0,
  "architectures": [],
  "dependencyFollowSuggests": false,
  "dependencyFollowRecommends": false,
  "dependencyFollowAllVariants": false,
  "dependencyFollowSource": false,
  "gpgDisableSign": false,
  "gpgDisableVerify": false,
  "downloadSourcePackages": false,
  "ppaDistributorID": "ubuntu",
  "ppaCodename": "",
  "S3PublishEndpoints": {},
  "SwiftPublishEndpoints": {}
}

Loome peegel tarkvarahoidla. Antud juhendi kiiremaks läbimiseks loome tarkvarahoidla, milles hoitakse ainult tarkvara nginx ning tema sõltuvusprogramme

aptly -architectures="amd64" mirror create -filter="nginx" -filter-with-deps nginx-main http://ee.archive.ubuntu.com/ubuntu/ trusty main restricted
Märkus: välja tuleb filtreerida paketid, mis on mõeldud 64-bit operatsioonisüsteemile. Filtreerimiseks kasutatakse parameetrit -architectures="amd64"

Peegel tarkvarahoidla loomine annab esialgu veateate, sest võtmepaare pole tekitatud. Käivitame veateate väljundis kuvatud käsu.

Autori testkeskkonna puhul oli võtmepaar ja käsk selline:

gpg --no-default-keyring --keyring trustedkeys.gpg --keyserver keys.gnupg.net --recv-keys 437D05B5 C0B21F32

Käivitame uuesti peegel tarkvarahoidla loomise käsu

aptly -architectures="amd64" mirror create -filter="nginx" -filter-with-deps nginx-main http://ee.archive.ubuntu.com/ubuntu/ trusty main restricted

Jälgi käsu väljundit ning kui ühtegi veateadet ei teki, siis tuleb värskelt loodud peegel tarkvarahoidla uuendada

Uuendame peegel tarkvarahoidla. Käsu käivitamise tulemusel laetakse alla nginx tarkvara ja tema sõltuvusprogrammid

aptly mirror update nginx-main

Kuna autor tekitas peegel tarkvarahoidla, siis tuleb sellest tekitada omakorda tõmmis. Peegel tarkvarahoidlat ei saa otse avaldada.

aptly snapshot create nginx from mirror nginx-main

Kasutusele võtmiseks tuleb peegel tarkvarahoidla tõmmis avalikuks teha ehk avaldada (publish). Avalikustamise jaoks on aga vaja luua GPG võtme paar

GPG võtmepaari loomine

GPG võtmepaari loomiseks on aja kokkuhoiu mõttes kasulik kasutada suvalise numbri generaatori abitarkvara. Vastasel juhul peab pikalt ootama kuni operatsioonisüsteemil on piisavalt suvalisi arvutusi tehtud.
Autor kasutas selleks rng-tools tarkvara.[2]

Paigaldame rng-tools tarkvara

apt-get update

apt-get install rng-tools

Peale paigaldamist ava konfiguratsiooni fail

nano /etc/default/rng-tools

lisa faili lõppu rida

HRNGDEVICE=/dev/urandom

Käivita suvalise numbri generaatori daemon

/etc/init.d/rng-tools start

Loome võtmepaarid

gpg --gen-key

Tarkvarahoidla tõmmise kasutusele võtmine

Käivita avalikustamise käsk. Juhul kui kasutasid võtmepaari loomisel salasõna (passphrase), siis nüüd on vaja see sisestada

aptly publish snapshot nginx

Käsu väljund autori testkeskkonnas:

root@aptly:~# aptly publish snapshot nginx
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:

You need a passphrase to unlock the secret key for
user: "Kristjan Hinn <kristjan.hinn@test.com>"
2048-bit RSA key, ID A4553395, created 2015-06-10

gpg: gpg-agent is not available in this session
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:

You need a passphrase to unlock the secret key for
user: "Kristjan Hinn <kristjan.hinn@test.com>"
2048-bit RSA key, ID A4553395, created 2015-06-10

gpg: gpg-agent is not available in this session

Snapshot nginx has been successfully published.
Please setup your webserver to serve directory '/var/www/html/public' with autoindexing.
Now you can add following line to apt sources:
  deb http://your-server/ trusty main
Don't forget to add your GPG key to apt with apt-key.

Väljundis öeldakse, et veebiserver tuleb seadistada vastavat kataloogi serveerima. Autor tegi testkeskkonnas uue virtuaalveebiserveri konfiguratsiooni failiga aptly.conf. Automaatne indekseerimine on /var/www kataloogile apache2 veebiserveri vaikeseadistustega juba lubatud.

nano /etc/apache2/sites-enabled/aptly.conf

Konfiguratsiooni faili näidis:

<VirtualHost *:80>
        ServerName aptly

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/public/

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Käivitame uue veebisaidi

a2ensite aptly.conf

Taaskäivitame veebiserveri

service apache2 restart

Lisaks on väljundis öeldud, GPG avalik võti tuleb klient serveri peal importida käsuga apt-key
Ekspordi avaliku võtme faili gpg.key

gpg --export --armor > gpg.key

Testimine

Kopeerime gpg.key fail klient serverisse ning impordime avaliku võtme

apt-key add gpg.key

Testimise mõttes, eemaldame /etc/apt/source.list failist kõik tarkvarahoidlad
Teeme varukoopia

cp /etc/apt/source.list /etc/apt/source.list.backup

Eemaldame kõik üleliigsed tarkvarahoidlad ning lisame ainult oma värskelt avalikustatud tarkvarahoidla

echo deb http://172.16.8.85/ trusty main > /etc/apt/source.list

Testime tulemust

Märkus: apt-get update käsk võib anda veateateid, kuna peegel tarkvarahoidla on tehtud ainult 64-bit operatsioonisüsteemile sobivaist tarkvarapakettidest. Veateateid võib testkeskkonna puhul eirata.
apt-get update

apt-get install nginx

Väljundis peaks olema näha, et tarkvara ja tema sõltuvusprogrammid installeeritakse kohaliku võrgu tarkvarahoidlast.

Kokkuvõtteks

Aptly tarkvarahoidla tarkvara on väga võimekas. Seadistamise viise on väga palju ning seetõttu võttis autor ühe kindla seadistamise viisi näidiseks. Aptly puhul võib paralleele tuua Windowsi maailma WSUS teenusega [3], kuid aptly on tunduvalt rohkem kohandatav vastavalt süsteemide vajadustele.

Viited