/pyaptly

Automates the creation and managment of aptly mirrors and snapshots based on yml input files.

Primary LanguagePythonGNU Affero General Public License v3.0AGPL-3.0

Pyaptly

Automates the creation and managment of aptly mirrors and snapshots based on yml input files.

pypi travis coverage [1]

Read the Docs

[1]Coverage enforced by tests (on travis)

Example commands

Initialize a new aptly server.

pyaptly -c mirrors.yml mirror create
pyaptly -c mirrors.yml mirror update
pyaptly -c mirrors.yml snapshot create
pyaptly -c mirrors.yml publish create

Update mirrors and snapshots and switch publish endpoints with automatic-update: true to the new snapshots.

pyaptly -c mirrors.yml mirror update
pyaptly -c mirrors.yml snapshot create
pyaptly -c mirrors.yml publish create
pyaptly -c mirrors.yml publish update

Manually trigger a switch to the new snapshots for the publish endpoint ubuntu/stable.

pyaptly -c mirrors.yml publish update ubuntu/stable

Install Debian/Ubuntu

Sources:

deb http://aptly.adfinis-sygroup.ch/adsy-public/debian wheezy main

deb http://aptly.adfinis-sygroup.ch/adsy-public/debian jessie main

deb http://aptly.adfinis-sygroup.ch/adsy-public/ubuntu trusty main

deb http://aptly.adfinis-sygroup.ch/adsy-public/ubuntu vivid main

deb http://aptly.adfinis-sygroup.ch/adsy-public/ubuntu xenial main

Install:

wget -O - http://aptly.adfinis-sygroup.ch/aptly.asc | apt-key add -
apt-get update
apt-get install python-pyaptly

Testing

Automatic

git submodule update --init --recursive
make test-local

Manual. There is a safety check in tests. They won't work if you don't set $HOME.

git submodule update --init --recursive
source testenv
py.test -x

or

git submodule update --init --recursive
export HOME="$(pwd)"
export PATH="$HOME/aptly_0.9.6_linux_amd64/:$PATH"
py.test -x

Vagrant Box

The box provisions aptly, nginx and two repos which can be used for tests:

aptly mirror create mirro-fakerepo01 http://localhost/fakerepo01 main
aptly mirror create mirro-fakerepo02 http://localhost/fakerepo02 main