stackbuilders.sb-debian-base
Advertencia: Esta biblioteca ha sido desaprobada y ya no se mantiene. No recibirá más parches de seguridad, funciones o correcciones de errores y se conserva aquí en GitHub con fines de archivo. Si deseas utilizarla, te sugerimos hacer un fork del repositorio y auditar el código antes de usarla. Para más información, contáctanos en info@stackbuilders.com.
Roles Recomendados:
Stack Builders - Base de Debian
Imagen genérica de Debian para servidores. Esta Galaxy requiere Ansible 2.7.0
Plataformas Soportadas
Debian
- 10 (buster)
- 9 (stretch)
Ubuntu
- 18.04 (bionic)
- 16.04 (xenial)
CAMBIOS IMPORTANTES:
- Las tareas de Haskell se eliminaron de este rol, por lo que las variables
install_haskell_stack
yinstall_haskell_dependencies
para llamar a las tareas de instalación de Haskell ya no se utilizan.
Cómo usar este rol
La versión actual utiliza el control de flujo de Ansible (when: foo está definido) para ejecutar tareas para las diferentes etapas, pero mantiene algunas etiquetas útiles como establecer el nombre del host o crear el directorio de despliegue.
Primero asegúrate de crear el archivo requirements.yml
y agregar la referencia
a este repositorio, de la siguiente manera:
---
- src: [email protected]:stackbuilders/sb-debian-base.git
version: <tag, commit o branch>
path: external-roles
Después de eso, necesitas ejecutar el siguiente comando:
ansible-galaxy install -r requirements.yml
Crear un playbook
Crea un archivo de playbook y en la sección de roles establece el grupo de tareas que
necesitas ejecutar. Como ejemplo, puedes usar tests/site.yml
o el siguiente:
# site.yml
- hosts: all
remote_user: foo
vars:
sb_debian_base_admin_user_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc1E ADMIN_USER_1
- ssh-rsa AAAAB3Nzac2Yc2e ADMIN_USER_2
sb_debian_base_deploy_user_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc1E DEPLOY_USER_1
- ssh-rsa AAAAB3Nzac2Yc2e DEPLOY_USER_2
roles:
- role: sb-debian-base
prebootstrap: yes
- role: sb-debian-base
bootstrap: yes
add_remove_keys: yes
vars:
sb_debian_base_deploy_user: deployer
sb_debian_base_supplementary_packages: [ "pkg-config", "traceroute" ]
sb_debian_base_environment_variables:
ONE: "uno"
TWO: "dos"
También puedes ejecutar tareas ad-hoc, aunque no es la forma recomendada:
ansible-playbook -l local -i hosts site.yml -k -u root -e "prebootstrap: yes"
Ejecuta el playbook de esta manera:
# Imagen básica
ansible-playbook -l local -i hosts site.yml -k -u root
# Cuenta de Administrador
ansible-playbook -l local -i hosts site.yml -u administrator
Los siguientes grupos de tareas están disponibles:
Prebootstrap (prebootstrap)
Esta etiqueta contiene tareas de configuración básica, tales como:
- Agregar usuario administrador
- El valor predeterminado es
admin
en Debian,ubuntu
en Ubuntu. Puedes definir la variable {{ sb_debian_base_admin_user }}
- El valor predeterminado es
- Actualizar caché de paquetes
- Instalar el paquete sudo
- Usar sudo sin contraseña para el grupo sudo
- Configurar claves SSH autorizadas para usuarios administradores
- Necesitas definir {{ sb_debian_base_admin_user_authorized_keys }}
Bootstrap (bootstrap)
Esta etiqueta contiene tareas de configuración más avanzadas, tales como:
- Deshabilitar la autenticación por contraseña para sesiones SSH
- Deshabilitar el acceso SSH para el usuario root
- Establecer el nombre del host
- Puedes definir {{ hostname }}
- Establecer la zona horaria
- Puedes definir {{ sb_debian_base_ntp_timezone }}
- Habilitar NTP usando systemd-timesyncd
- Asegurarte de almacenar los datos de journald de manera persistente
- Actualizar todos los paquetes
- Instalar paquetes básicos
- por ejemplo: vim, tmux, htop, atop, tree, ufw, emacs, git, curl
- Instalar paquetes suplementarios - no solo sb_debian_base_extra_packages
- Habilitar el firewall usando UFW
- Abrir puertos generales (por ejemplo, puerto SSH, puerto HTTP; por defecto SSH)
- Puedes definir {{ ports }}
- Abrir puertos específicos para IPs específicas
- Puedes definir {{ port_ips }}
- Puedes deshabilitar UFW con
sb_debian_base_firewall: no
- Abrir puertos generales (por ejemplo, puerto SSH, puerto HTTP; por defecto SSH)
- Establecer y actualizar variables de entorno
- Necesitas definir {{ sb_debian_base_environment_variables }}
- Crear usuario y grupo Unix para el usuario desplegador
- Necesitas definir la variable {{ sb_debian_base_deploy_user }} (por ejemplo, deployer)
- Opcionalmente define la variable {{ sb_debian_base_deploy_user_group }} (por ejemplo, deployer), de lo contrario, será la misma que {{ sb_debian_base_deploy_user }}
- Crear directorio de despliegue de la aplicación
- Agregar claves SSH para las «Claves de Despliegue» de GitHub
- Configurar claves SSH autorizadas para el usuario desplegador
- Necesitas definir {{ sb_debian_base_deploy_user_authorized_keys }}
- Asegurarte de que github.com sea un host conocido
- Necesitas definir {{ sb_debian_base_deploy_user }}
- Esta variable agrega por defecto a GitHub como un host conocido, pero es posible cambiarlo sobrescribiendo {{ sb_debian_base_known_hosts }}
- Establecer la configuración global de historial de bash en el formato siguiente:
285 Thu 08 Aug 2019 01:43:40 PM UTC algún comando
Consulta a continuación las variables disponibles.
Establecer nombre del host (set-hostname)
- Establecer el nombre del host a la variable específica del host
- Necesitas definir {{ hostname }}
Configuración del historial de bash:
Habilitar/deshabilitar la configuración del historial
sb_debian_base_bash_history: true
Bajo
sb_debian_base_bash_history_config:
- Establecer la cantidad de líneas a mantener en el buffer de historial
histsize: '5000'
- Establecer la cantidad de líneas a mantener en el archivo de historial
histfilesize: '3000'
- Establecer el formato de tiempo a agregar antes de cada comando de historial (ver
man history
para opciones completas)histtimeformat: '%c%t'
- Establecer la cantidad de líneas a mantener en el buffer de historial
Crear directorio de la aplicación (create-app-directory)
- Crear el directorio de despliegue de la aplicación
- Cuando {{ sb_debian_base_deploy_user }} está definido
Dependencias externas (Galaxias) incluidas en este grupo de tareas de bootstrap
- kamaln7.swapfile (Configurar el archivo de intercambio)
- Puedes definir la variable {{ sb_debian_base_swap_file_size }} (por ejemplo, 2048MB)
- Instalar unattended-upgrades para parches de seguridad solamente
- Puedes definir la variable {{ sb_debian_base_uu_email_alerts }} (por ejemplo, example@example.com)
Actualizar claves SSH autorizadas (add-remove-keys)
Actualiza las claves autorizadas SSH:
- Necesitas definir la siguiente lista de variables que contienen las claves públicas SSH para ambos, usuarios administradores y desplegadores respectivamente:
{{ sb_debian_base_admin_user_authorized_keys }}
{{ sb_debian_base_deploy_user_authorized_keys }}
Licencia
MIT, consulta el archivo LICENSE en este repositorio.
Información del Autor
Justin Leitgeb, Stack Builders Inc.
ansible-galaxy install stackbuilders.sb-debian-base