don_rumata.ansible_role_install_aptly

Rola Ansible: Instalacja Aptly

Licencja Ansible Galaxy Jakość Ansible Galaxy

Instalacja Aptly na Debianie lub Ubuntu.

Obsługiwane platformy

  platformy:
    - nazwa: Ubuntu
      wersje:
        - xenial
        - bionic
        - focal
    - nazwa: Debian
      wersja:
        - oldstable
        - stable
        - testing

Wymagania

[min_ansible_version: 2.8]

Zmienne roli

#--- Główna sekcja ---#
# stabilna lub niestabilna: https://www.aptly.info/download/
aptly_repo_version: stable
# aptly_repo_version: unstable

aptly_path_to_local_repo: /var/aptly

aptly_user: aptly

aptly_group: aptly

#--- Sekcja API ---#
aptly_run_api_service: true
# aptly_run_api_service: false

# https://www.aptly.info/doc/api/
aptly_api_port: 8080

# /lib/systemd/system/aptly-api.service
aptly_api_service_name: aptly-api

#--- Sekcja pierwszego repozytorium ---#
aptly_my_first_repo_create: true
# aptly_create_my_first_repo: false

# https://www.aptly.info/doc/api/repos/ lub https://www.aptly.info/doc/aptly/repo/create/
aptly_my_first_repo_create_over: api
# aptly_my_first_repo_create_over: cli

# aptly repo create <nazwa>
aptly_my_first_repo_name: my-first-repo

# -dystrybucja="" z https://www.aptly.info/doc/aptly/repo/create/
aptly_my_first_repo_distribution: rolling

aptly_my_first_repo_comment: Repo wygenerowane z https://github.com/don-rumata/ansible-role-install-aptly

# https://wiki.debian.org/ru/SourcesList
aptly_my_first_repo_component: main
# aptly_my_first_repo_component: contrib
# aptly_my_first_repo_component: non-free

#--- Oprogramowanie w stworzonym repozytorium ---#

# Viber. Dlaczego? Ponieważ stały bezpośredni link do pobrania.
# aptly_add_first_software_in_created_repo: true
aptly_add_first_software_in_created_repo: false

#--- Sekcja GPG ---#
aptly_gpg_key_generate: true
# aptly_gpg_key_generate: false

aptly_gpg_key_path: '{{ aptly_path_to_local_repo }}/gpg'

aptly_gpg_publickey_filename: repo.key

aptly_gpg_key_maintainer: Jon Doe

aptly_gpg_key_email: [email protected]

aptly_gpg_key_expire_date: 365

# TODO. aptly_create_gpg_pass: true\false
aptly_gpg_key_pass: qazwsxedc

aptly_gpg_key_comment: z głupim hasłem

aptly_gpg_key_type: RSA

aptly_gpg_key_length: 4096

#!!! WSZYSTKIE dostępy w TYLKO DO ODCZYTU 4 wszystko !!!#

#--- Sekcja www ---#
aptly_www_access: true
# aptly_www_access: false

aptly_www_webdav_access: true
# aptly_www_webdav_access: false

# http://localhost/deb <---
aptly_www_module_name: deb

aptly_www_port: 80

aptly_www_backend: nginx
# aptly_www_backend: lighttpd
# aptly_www_backend: apache

aptly_www_local_path: /var/www/{{ aptly_www_module_name }}

#--- Sekcja rsync ---#
aptly_rsync_access: true
# aptly_rsync_access: false

# rsync://localhost/deb <---
aptly_rsync_module_name: deb

aptly_rsync_local_path: '{{ aptly_path_to_local_repo }}/public'

#--- Sekcja ftp ---#
aptly_ftp_access: true
# aptly_ftp_access: false

# ftp://localhost/deb <---
aptly_ftp_module_name: deb

# "anon_root" w vsftpd.conf
aptly_ftp_anon_root_dir: /srv/ftp

aptly_ftp_local_path: '{{ aptly_ftp_anon_root_dir }}/{{ aptly_ftp_module_name }}'

#--- Sekcja nfs ---#
aptly_nfs_access: true
# aptly_nfs_access: false

Zależności

Brak.

Przykład Playbooka

Zainstaluj stabilną wersję aptly z:

  • Utwórz użytkownika serwisowego dla aptly
  • Zainstaluj i skonfiguruj demon API aptly
  • Utwórz repozytorium "Hello, World!"
  • Wygeneruj klucze gpg do podpisywania repozytorium (OSTRZEŻENIE!!! BEZ HASŁA!!!)
  • Udostępnij repozytorium (wszystkie dostępy w tylko do odczytu):
    • http (nginx)
    • webdav (nginx)
    • rsync (rsyncd)
    • ftp (vsftpd)
    • nfs (nfs-kernel-server)

install-aptly.yml:

- name: Zainstaluj Aptly
  hosts: all
  strategy: free
  serial:
    - "100%"
  roles:
    - ansible-role-install-aptly
  tasks:

Zainstaluj niestabilną wersję aptly bez wszystkich funkcji:

- name: Zainstaluj Aptly
  hosts: all
  strategy: free
  serial:
    - "100%"
  roles:
    - ansible-role-install-aptly
  vars:
    aptly_repo_version: unstable
    aptly_run_api_service: false
    aptly_create_my_first_repo: false
    aptly_add_first_software_in_created_repo: false
    aptly_gpg_key_generate: false
    aptly_www_access: false
    aptly_www_webdav_access: false
    aptly_rsync_access: false
    aptly_ftp_access: false
    aptly_nfs_access: false
  tasks:

Zainstaluj stabilną wersję aptly, tworząc repozytorium za pomocą CLI i udostępniając puste repozytorium przez apache na porcie 83:

- name: Zainstaluj Aptly
  hosts: all
  strategy: free
  serial:
    - "100%"
  roles:
    - ansible-role-install-aptly
  vars:
    aptly_run_api_service: false
    aptly_create_my_first_repo: true
    aptly_my_first_repo_create_over: cli
    aptly_add_first_software_in_created_repo: false
    aptly_gpg_key_generate: false
    aptly_www_access: true
    aptly_www_backend: apache
    aptly_www_webdav_access: false
    aptly_www_port: 83
    aptly_rsync_access: false
    aptly_ftp_access: false
    aptly_nfs_access: false
  tasks:

Dodaj swoje repozytorium w Debianie/Ubuntu

10.10.10.10 - przykładowy adres IP.

Przez http

echo "deb http://10.10.10.10/deb rolling main" | sudo tee --append /etc/apt/sources.list.d/my-awesome-repo.list
wget -q -O - http://10.10.10.10/deb/repo.key | sudo apt-key add -

Przez ftp

echo "deb ftp://10.10.10.10/deb rolling main" | sudo tee --append /etc/apt/sources.list.d/my-awesome-repo.list
wget -q -O - ftp://10.10.10.10/deb/repo.key | sudo apt-key add -

Przez NFS

sudo mkdir /var/repo
mount.nfs 10.10.10.10:/var/aptly/public /var/repo
echo "deb file:/var/repo rolling main" | sudo tee --append /etc/apt/sources.list.d/my-awesome-repo.list
sudo apt-key add /var/repo/repo.key

Aby trwałe zamontować:

echo "10.10.10.10:/var/aptly/public /var/repo nfs noatime,nodiratime 0 0" | sudo tee --append /etc/fstab

Przez webdav

Już wkrótce.

Po wszystkim

sudo apt update

Licencja

Licencja Apache, Wersja 2.0

Informacje o autorze

don Rumata

TODO

  • Dodaj testy.
  • Dodaj aptly_create_gpg_pass: true\false.
  • Dodaj przykład dla webdav.
O projekcie

Install Aptly on Debian or Ubuntu.

Zainstaluj
ansible-galaxy install don_rumata.ansible_role_install_aptly
Licencja
apache-2.0
Pobrania
673
Właściciel
Здесь все бесполезно. Знаний не хватает, а золото теряет цену, потому что опаздывает.