don_rumata.ansible_role_install_aptly
Rol de Ansible: Instalar Aptly
Instala Aptly en Debian o Ubuntu.
Plataformas compatibles
plataformas:
- nombre: Ubuntu
versiones:
- xenial
- bionic
- focal
- nombre: Debian
versiones:
- oldstable
- stable
- testing
Requisitos
[min_ansible_version: 2.8]
Variables del rol
#--- Sección principal ---#
# squeeze o nightly: 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
#--- Sección 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
#--- Sección de primer repositorio ---#
aptly_my_first_repo_create: true
# aptly_create_my_first_repo: false
# https://www.aptly.info/doc/api/repos/ o 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 <nombre>
aptly_my_first_repo_name: my-first-repo
# -distribution="" de https://www.aptly.info/doc/aptly/repo/create/
aptly_my_first_repo_distribution: rolling
aptly_my_first_repo_comment: Repositorio generado con 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
#--- Software en el repositorio creado ---#
# Viber. ¿Por qué? Porque tiene enlace de descarga permanente.
# aptly_add_first_software_in_created_repo: true
aptly_add_first_software_in_created_repo: false
#--- Sección 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: con una frase de paso estúpida
aptly_gpg_key_type: RSA
aptly_gpg_key_length: 4096
#!!! Todos los accesos son SOLO LECTURA para todos !!!#
#--- Sección 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 }}
#--- Sección 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'
#--- Sección ftp ---#
aptly_ftp_access: true
# aptly_ftp_access: false
# ftp://localhost/deb <---
aptly_ftp_module_name: deb
# "anon_root" en vsftpd.conf
aptly_ftp_anon_root_dir: /srv/ftp
aptly_ftp_local_path: '{{ aptly_ftp_anon_root_dir }}/{{ aptly_ftp_module_name }}'
#--- Sección nfs ---#
aptly_nfs_access: true
# aptly_nfs_access: false
Dependencias
Ninguna.
Ejemplo de Playbook
Instala la versión estable de aptly
con:
- Crear usuario de servicio para aptly
- Instalar y configurar el servicio API de aptly
- Crear un repositorio "Hola, mundo"
- Generar claves gpg para firmar el repositorio (ADVERTENCIA!!! ¡SIN FRASE DE PASO!!!)
- Compartir el repositorio (todas las accesos son solo lectura):
- http (nginx)
- webdav (nginx)
- rsync (rsyncd)
- ftp (vsftpd)
- nfs (nfs-kernel-server)
install-aptly.yml
:
- nombre: Instalar Aptly
hosts: all
strategy: free
serial:
- "100%"
roles:
- ansible-role-install-aptly
tasks:
Instala la versión inestable de aptly
sin todas las funciones:
- nombre: Instalar 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:
Instala la versión estable de aptly
, creando el repositorio mediante la CLI y compartiendo el repositorio vacío mediante apache en el puerto 83:
- nombre: Instalar 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:
Agrega tu repositorio en tu Debian/Ubuntu
10.10.10.10
- ejemplo de IP.
A través de 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 -
A través de 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 -
A través de 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
Para montaje permanente:
echo "10.10.10.10:/var/aptly/public /var/repo nfs noatime,nodiratime 0 0" | sudo tee --append /etc/fstab
A través de webdav
Próximamente.
Después de todo
sudo apt update
Licencia
Licencia Apache, Versión 2.0
Información del autor
TODO
- Agregar pruebas.
- Agregar
aptly_create_gpg_pass: true\false
. - Agregar ejemplo para webdav.
Instalar
ansible-galaxy install don_rumata.ansible_role_install_aptly
Licencia
apache-2.0
Descargas
673
Propietario
Здесь все бесполезно. Знаний не хватает, а золото теряет цену, потому что опаздывает.