jokerwrld999.bootstrap
Rol de Ansible: Bootstrap
Descripción
Este rol proporciona tareas básicas de preconfiguración para tus servidores.
Características
Configuración del Sistema
- Actualizar el Sistema y Configurar Repositorios
Configuración de Usuarios
- Configurar Usuario Root
- Etiquetas: lxc
- Configurar Usuario Personalizado
- Configurar Usuario Root
Instalar Software
- Instalar Paquetes de Desarrollo
- Etiquetas: lxc
- Instalar Ajustes
- Instalar Docker
- Etiquetas: docker
- Instalar Utilidades
- Instalar Paquetes de Desarrollo
Realizar Ajustes
- Configurar Nombre del Host
- Configurar Retención de Registros
- Instalar Microcódigo
- Configurar OpenSSH
- Instalar Agente Invitado Qemu
Uso
Requisitos
Este rol requiere que se instalen algunas colecciones desde ansible-galaxy. Aquí tienes un ejemplo de archivo requirements.yml
:
---
colecciones:
- nombre: community.general
- nombre: kewlfft.aur
roles:
- nombre: jokerwrld999.bootstrap
Instalar Requisitos
ansible-galaxy install -r requirements.yml
Variables del Rol
Las variables disponibles se enumeran a continuación, junto con valores predeterminados:
Preconfiguración
set_hostname
: Booleano, predeterminado enfalse
. Establecer entrue
para configurar un nombre de host personalizado.custom_hostname
: Cadena, una plantilla para el nombre de host utilizando${{ custom_user }}
.Ejemplo:
{{ custom_user }}-server
SSH
ssh_port
: Entero, predeterminado en22
. Establece el puerto SSH deseado.
Configuración del Usuario
setup_user
: Booleano, predeterminado enfalse
. Establecer entrue
para crear un usuario personalizado con shell ZSH, personalizaciones de p10k y claves ssh generadas de tipoed25519
.custom_user
: Cadena, predeterminada al valor encontrado en la variable de entornoCUSTOM_USER
. La alternativa es"jokerwrld"
. Nombre de usuario para la cuenta de usuario personalizada.Ejemplo para crear una variable de entorno:
export CUSTOM_USER=nombredeusuario
.temp_dir
: Cadena, predeterminada en"tmp"
. Directorio temporal utilizado para ciertas tareas.
Contraseña del Usuario (Opcional - Consideración de Seguridad)
Cifrar Contraseña
python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirmar: ")) else exit())'
root_passwd
: Cadena, vacía por defecto. Establece tu contraseña de Root.custom_user_passwd
: Cadena, vacía por defecto. Establece la contraseña de tu Usuario Personalizado.
Considera usar Ansible Vault u otras soluciones de gestión de credenciales seguras.
Ejemplo de Archivo de Variables
---
# Preconfiguración
# Nombre del Host Personalizado
set_hostname: false
custom_hostname: "{{ custom_user }}-server"
# SSH
ssh_port: 22
# Configuración de Usuarios
setup_user: false
custom_user: "{{ lookup('env', 'CUSTOM_USER') | default('jokerwrld', true) }}" # >>> ubuntu | ec2-user | custom_user
temp_dir: "tmp"
# Cifrar Contraseña
# python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirmar: ")) else exit())'
root_passwd: "$6$aBitRBNIk5O7.rRs$.r7jWebBbVsx6GL7/8EixidRnFxtvSPEcXMkCLa.zKXS8ETQjpay54Htc9Q4sLJfs1Cyvjj4VVGpe5yc1zXLe/" # root
custom_user_passwd: "$6$8ReSwQWsQjmGVfva$2/.pJ9aeIIXxAPhhpDuOhZ7161EKvAx2uFFdGpMC9tpMGEBO4m5MbGYR9nJloPrf68GSb7eSsN6Ef0FMKxkbQ1" # sudo
Ejemplo de Playbook
- name: Preconfigurando servidores
hosts: all
become: true
vars_files:
- main.yml
vars:
set_hostname: true
custom_hostname: "{{ custom_user }}-server"
setup_user: true
custom_user: miusuario
ssh_port: 2234
tasks:
- name: Preconfigurando servidores
block:
- name: Incluir rol bootstrap
ansible.builtin.include_role:
name: jokerwrld999.bootstrap
tags: lxc, docker
rescue:
- name: Preconfiguración | Rescate
ansible.builtin.set_fact:
task_failed: true
Dependencias
Ninguna.
Licencia
MIT / BSD
Información del Autor
Este rol fue creado en 2024 por Joker Wrld.
Bootstrap your Linux servers.
ansible-galaxy install jokerwrld999.bootstrap