SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
aptly - система
управления Debianрепозиториями пакетов
Андрей Смирнов,

DevOps Meetup Moscow Jan’14
Повторяемость!
Изменения
Окружение
Повторяемость
окружения
Изменение
окружения
Повторяемость
изменений окружения
Окружение - 

набор пакетов
Версии окружения
development

staging

testing

production
Управление окружением
Debian

repo
apt-sources

apt-get

backports
aptpreferences
3rd-party

repo
Не та версия…
apt pinning поможет!
No…
Цель
•

Зафиксированный репозиторий пакетов
(повторяемость)

•

Контролируемые изменения версий
(изменений)
aptly
* не является заменой apt, dpkg!
Сущности
mirror

– зеркало удаленного репозитория

snapshot

– неизменяемый срез набора пакетов

published

repo

– опубликованный репозиторий пакетов
mirror

take snapshot
pull

snapshot

snapshot

update

diff

take snapshot

local

repo

verify

published

repo

snapshot

publish
merge

snapshot
aptly mirror
$ aptly mirror create wheezy-main http://mirror.yandex.ru/
debian/ wheezy main	
Downloading http://mirror.yandex.ru/debian/dists/wheezy/
Release...	
!

Mirror [mirror1]: http://mirror.yandex.ru/debian/ wheezy
successfully added.	
You can run 'aptly mirror update mirror1' to download
repository contents.
aptly mirror
$ aptly mirror update wheezy-main	
Downloading http://mirror.yandex.ru/debian/dists/wheezy/
Release...	
Downloading & parsing package files...	
Downloading http://mirror.yandex.ru/debian/dists/wheezy/
main/binary-i386/Packages.bz2...	
Downloading http://mirror.yandex.ru/debian/dists/wheezy/
main/binary-amd64/Packages.bz2...	
Saving packages to database...	
Building download queue...	
Download queue: 0 items, 0.00 GiB size	
!

Mirror `wheezy-main` has been successfully updated.
mirror

update
aptly snapshot
$ aptly snapshot create deb-main-250114 from mirror wheezymain	
!

Snapshot deb-main-250114 successfully created.	
You can run 'aptly publish snapshot deb-main-250114' to
publish snapshot as Debian repository.
mirror

update

take snapshot

snapshot
aptly snapshot pull
$ aptly snapshot pull deb-main-250114 percona-250114 deb-wpercona 'percona-server-server (>=5.5)’	
…	
[+]
[+]
[+]
[+]
[-]
[+]
[+]
[+]
[+]
[+]
[-]
[+]

percona-server-server-5.5.35-rel33.0-611.wheezy_amd64 added	
percona-server-server-5.5-5.5.35-rel33.0-611.wheezy_amd64 added	
percona-server-client-5.5-5.5.35-rel33.0-611.wheezy_amd64 added	
percona-server-common-5.5-5.5.35-rel33.0-611.wheezy_amd64 added	
libmysqlclient18-5.5.31+dfsg-0+wheezy1_amd64 removed	
libmysqlclient18-5.5.35-rel33.0-611.wheezy_amd64 added	
percona-server-server-5.5.35-rel33.0-611.wheezy_i386 added	
percona-server-server-5.5-5.5.35-rel33.0-611.wheezy_i386 added	
percona-server-client-5.5-5.5.35-rel33.0-611.wheezy_i386 added	
percona-server-common-5.5-5.5.35-rel33.0-611.wheezy_i386 added	
libmysqlclient18-5.5.31+dfsg-0+wheezy1_i386 removed	
libmysqlclient18-5.5.35-rel33.0-611.wheezy_i386 added
aptly snapshot pull
$ aptly snapshot pull aptly snapshot pull deb-main-250114
back-250114 deb-w-xorg rsyslog	
…	
[-]
[+]
[-]
[+]
[+]
[-]
[+]
[-]
[+]

rsyslog-5.8.11-3_amd64 removed	
rsyslog-7.4.4-1~bpo70+1_amd64 added	
libestr0-0.1.1-2_amd64 removed	
libestr0-0.1.9-1~bpo70+1_amd64 added	
init-system-helpers-1.11~bpo70.1_all added	
rsyslog-5.8.11-3_i386 removed	
rsyslog-7.4.4-1~bpo70+1_i386 added	
libestr0-0.1.1-2_i386 removed	
libestr0-0.1.9-1~bpo70+1_i386 added
mirror

take snapshot
pull

update

snapshot

snapshot

snapshot
aptly snapshot diff
$ aptly snapshot diff deb-main-250114 deb-w-percona	
!
+
+
+
+
!
+
+
+
+

Arch
amd64
amd64
amd64
amd64
amd64
i386
i386
i386
i386
i386

|
|
|
|
|
|
|
|
|
|
|

Package
libmysqlclient18
percona-server-client-5.5
percona-server-common-5.5
percona-server-server
percona-server-server-5.5
libmysqlclient18
percona-server-client-5.5
percona-server-common-5.5
percona-server-server
percona-server-server-5.5

|
|
|
|
|
|
|
|
|
|
|

Version in A
5.5.31+dfsg-0+wheezy1
5.5.31+dfsg-0+wheezy1
-

|
|
|
|
|
|
|
|
|
|
|

Version in B	
5.5.35-rel33.0-611.wheezy	
5.5.35-rel33.0-611.wheezy	
5.5.35-rel33.0-611.wheezy	
5.5.35-rel33.0-611.wheezy	
5.5.35-rel33.0-611.wheezy	
5.5.35-rel33.0-611.wheezy	
5.5.35-rel33.0-611.wheezy	
5.5.35-rel33.0-611.wheezy	
5.5.35-rel33.0-611.wheezy	
5.5.35-rel33.0-611.wheezy
mirror

take snapshot
pull
snapshot

update

diff

snapshot

snapshot
aptly snapshot verify
$ aptly snapshot verify deb-w-percona	
Missing dependencies (13):	
fenix [amd64]	
fenix-plugins-system [amd64]	
ia32-libs-i386 [amd64]	
ia32-libs-gtk-i386 [amd64]	
vidcontrol [amd64]	
kbdcontrol [amd64]	
libmysqlclient18 (= 5.5.31+dfsg-0+wheezy1) [amd64]	
scsh-0.6 (>= 0.6.6) [amd64]	
scsh-0.6 [amd64]	
mozart (>= 1.4.0) [amd64]	
libmysqlclient18 (= 5.5.31+dfsg-0+wheezy1) [i386]	
vidcontrol [i386]	
kbdcontrol [i386]
mirror

take snapshot
pull
snapshot

update

diff

snapshot

snapshot

verify
aptly snapshot merge
$ aptly snapshot merge deb-w-percona-250114 deb-main-250114
percona-250114	
!

Snapshot deb-w-percona-250114 successfully created.	
You can run 'aptly publish snapshot deb-w-percona-250114'
to publish snapshot as Debian repository.
mirror

take snapshot
pull

snapshot

snapshot

update

diff

snapshot

merge

snapshot

verify
aptly publish snapshot
$ aptly publish snapshot -distribution=wheezy
percona-250114	
Signing file '/Users/smira/.aptly/public/dists/wheezy/
Release' with gpg, please enter your passphrase when
prompted:	
!

…	
!

Snapshot percona-250114 has been successfully published.	
Please setup your webserver to serve directory '/Users/
smira/.aptly/public' with autoindexing.	
Now you can add following line to apt sources:	
deb http://your-server/ wheezy main	
Don't forget to add your GPG key to apt with apt-key.
mirror

take snapshot
pull

snapshot

verify

snapshot

update

diff

published

repo

snapshot

publish
merge

snapshot
Что планируется
•

Поиск

•

Фильтры при выполнении операций

•

Управление локальными репозиториями
(добавление “своих” пакетов)

•

Поддержка source-пакетов и translations

•

Верифицирование удаленных репозиторев
Что не работает пока
•

удаление

•

bash-completion

•

flat-репозитории

•

прогресс скачивания
Конкуренты

•

mirror: ftpsync, reprepro, debmirror, apt-mirror, aptcache…

•

archive generation: dak, mini-dak, reprepro, …
Внутренности
•

Написано на Go

•

База данных - LevelDB

•

Файлы пакетов хранятся один раз
Внутренности
•

~/.aptly.conf - конфигурация

•

~/.aptly/ - рабочий каталог по умолчанию
•

db/ - база данных (мета-информация)

•

pool/ - хранилище файлов

•

public/ - опубликованные репозитории
Ссылки
•

http://www.aptly.info/

•

https://github.com/smira/aptly/

•

@smira

•

me@smira.ru

•

Skype: smirnov.andrey

Contenu connexe

Similaire à aptly - система управления Debian-репозиториями пакетов

glance replicator
glance replicatorglance replicator
glance replicator
irix_jp
 
Hudson以外の何か with 任意
Hudson以外の何か with 任意Hudson以外の何か with 任意
Hudson以外の何か with 任意
bleis tift
 
Kubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdf
Kubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdfKubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdf
Kubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdf
Srinivasa Rao
 
DevOps for Opensource Geospatial Applications
DevOps for Opensource Geospatial ApplicationsDevOps for Opensource Geospatial Applications
DevOps for Opensource Geospatial Applications
tlpinney
 

Similaire à aptly - система управления Debian-репозиториями пакетов (20)

aptly: Debian repository management tool
aptly: Debian repository management toolaptly: Debian repository management tool
aptly: Debian repository management tool
 
Instrumentación de entrega continua con Gitlab
Instrumentación de entrega continua con GitlabInstrumentación de entrega continua con Gitlab
Instrumentación de entrega continua con Gitlab
 
Ruby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionRuby and Rails Packaging to Production
Ruby and Rails Packaging to Production
 
glance replicator
glance replicatorglance replicator
glance replicator
 
Hudson以外の何か with 任意
Hudson以外の何か with 任意Hudson以外の何か with 任意
Hudson以外の何か with 任意
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
 
Capistrano
CapistranoCapistrano
Capistrano
 
Arbeiten mit distribute, pip und virtualenv
Arbeiten mit distribute, pip und virtualenvArbeiten mit distribute, pip und virtualenv
Arbeiten mit distribute, pip und virtualenv
 
PHP selber bauen
PHP selber bauenPHP selber bauen
PHP selber bauen
 
Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點
 
Composer, putting dependencies on the score
Composer, putting dependencies on the scoreComposer, putting dependencies on the score
Composer, putting dependencies on the score
 
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
 
Composer: putting dependencies on the score
Composer: putting dependencies on the scoreComposer: putting dependencies on the score
Composer: putting dependencies on the score
 
Using Buildout to Develop and Deploy Python Projects
Using Buildout to Develop and Deploy Python ProjectsUsing Buildout to Develop and Deploy Python Projects
Using Buildout to Develop and Deploy Python Projects
 
빈스톡 첫인상 with Git
빈스톡 첫인상 with Git빈스톡 첫인상 with Git
빈스톡 첫인상 with Git
 
Kubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdf
Kubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdfKubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdf
Kubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdf
 
Chef
ChefChef
Chef
 
Testing Your Automation Code (Vagrant Version)
Testing Your Automation Code (Vagrant Version)Testing Your Automation Code (Vagrant Version)
Testing Your Automation Code (Vagrant Version)
 
DevOps for Opensource Geospatial Applications
DevOps for Opensource Geospatial ApplicationsDevOps for Opensource Geospatial Applications
DevOps for Opensource Geospatial Applications
 
OSS AWS 핸즈온 강의
OSS AWS 핸즈온 강의OSS AWS 핸즈온 강의
OSS AWS 핸즈온 강의
 

Plus de Andrey Smirnov

Remote Highload
Remote HighloadRemote Highload
Remote Highload
Andrey Smirnov
 
Анатомия веб сервиса (HighLoad-2014)
Анатомия веб сервиса (HighLoad-2014)Анатомия веб сервиса (HighLoad-2014)
Анатомия веб сервиса (HighLoad-2014)
Andrey Smirnov
 
Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)
Andrey Smirnov
 
Smirnov twisted-python
Smirnov twisted-pythonSmirnov twisted-python
Smirnov twisted-python
Andrey Smirnov
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в Python
Andrey Smirnov
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в Python
Andrey Smirnov
 

Plus de Andrey Smirnov (15)

Remote Highload
Remote HighloadRemote Highload
Remote Highload
 
Вебинар "Разработка высоконагруженных и надежных систем": Введение
Вебинар "Разработка высоконагруженных и надежных систем": ВведениеВебинар "Разработка высоконагруженных и надежных систем": Введение
Вебинар "Разработка высоконагруженных и надежных систем": Введение
 
Анатомия веб сервиса (HighLoad-2014)
Анатомия веб сервиса (HighLoad-2014)Анатомия веб сервиса (HighLoad-2014)
Анатомия веб сервиса (HighLoad-2014)
 
Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)
 
Консольные приложения на Go
Консольные приложения на GoКонсольные приложения на Go
Консольные приложения на Go
 
Курс высокие нагрузки: сеть (отрывок)
Курс высокие нагрузки: сеть (отрывок)Курс высокие нагрузки: сеть (отрывок)
Курс высокие нагрузки: сеть (отрывок)
 
Курс высокие нагрузки: очереди (отрывок)
Курс высокие нагрузки:  очереди (отрывок)Курс высокие нагрузки:  очереди (отрывок)
Курс высокие нагрузки: очереди (отрывок)
 
Курс высокие нагрузки и надежность: отрывок
Курс высокие нагрузки и надежность: отрывокКурс высокие нагрузки и надежность: отрывок
Курс высокие нагрузки и надежность: отрывок
 
Smirnov twisted-python
Smirnov twisted-pythonSmirnov twisted-python
Smirnov twisted-python
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в Python
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в Python
 
Доклад на РИТ: Высокие нагрузки (2008)
Доклад на РИТ: Высокие нагрузки (2008)Доклад на РИТ: Высокие нагрузки (2008)
Доклад на РИТ: Высокие нагрузки (2008)
 
pyFMS
pyFMSpyFMS
pyFMS
 
pyFMS
pyFMSpyFMS
pyFMS
 
PGDBObject
PGDBObjectPGDBObject
PGDBObject
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Dernier (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

aptly - система управления Debian-репозиториями пакетов