thedumbtechguy.semaphore
Rol de Ansible: Semaphore
Un rol de ansible para instalar y configurar Ansible Semaphore
Este rol contiene un script de shell para preparar ansible y semaphore. Maneja la configuración y la instalación de todas las dependencias necesarias.
Requisitos
- wget: Necesario para descargar
bootstrap.sh
. - thedumbtechguy.configure-ansible: Necesario para configurar ansible. Se instalará si no está disponible.
- thedumbtechguy.logrotate: Necesario para configurar logrotate. Se instalará si no está disponible.
- thedumbtechguy.mariadb: Necesario para configurar mariadb. Se instalará si no está disponible.
Este rol ha sido probado solo en
Ubuntu 16.04
yUbuntu 16.10
.
Instalación Inicial
Si este es un nuevo servidor, querrás configurar primero el nombre del host (hostname server.domain.tld
).
Copia y ejecuta el siguiente comando
sudo apt-get install -y wget &&
mkdir /tmp/bootstrap &&
cd /tmp/bootstrap &&
wget https://raw.githubusercontent.com/thedumbtechguy/ansible-semaphore-bootstrap/master/bootstrap.sh &&
sudo sh bootstrap.sh init
Luego puedes personalizar la configuración en vars.json
y ejecutar sudo sh bootstrap.sh execute
.
Variables
semaphore_version
: versión a instalar.- Predeterminado:
2.3.0
- Opciones:
2.2.0
2.3.0
- Predeterminado:
semaphore_port
: puerto a escuchar.- Predeterminado:
3000
- Predeterminado:
semaphore_db_name
: el nombre de la base de datos que se creará para semaphore.- Predeterminado:
semaphore
- Predeterminado:
semaphore_db_auth_user
: el nombre del usuario de la base de datos de la aplicación.- Predeterminado:
semaphore
- Predeterminado:
semaphore_db_auth_password
: la contraseña del usuario de la base de datos de la aplicación.- Requerido
semaphore_db_auth_privileges
: los privilegios a otorgar al usuario de la base de datos de la aplicación.- Predeterminado:
*.*:ALL
- Predeterminado:
semaphore_config_auth_name
: el nombre del usuario de la aplicación semaphore por defecto.- Predeterminado:
Admin
- Predeterminado:
semaphore_config_auth_email
: el correo electrónico del usuario de la aplicación semaphore por defecto.- Predeterminado:
root
- Predeterminado:
semaphore_config_auth_username
: el usuario del usuario de la aplicación semaphore por defecto.- Predeterminado:
admin
- Predeterminado:
semaphore_config_auth_password
: la contraseña del usuario de la aplicación semaphore por defecto.- Requerido
semaphore_config_data_dir
: donde almacenar la configuración de semaphore y los archivos de playbook.- Predeterminado:
/var/lib/semaphore
- Predeterminado:
semaphore_config_log_path
: donde almacenar los archivos de registro.- Predeterminado:
/var/log/semaphore
- Predeterminado:
semaphore_config_email_alerts_enable
: habilitar alertas por correo electrónico.- Predeterminado:
no
- Predeterminado:
semaphore_config_email_alerts_server
: servidor smtp.- Predeterminado:
localhost
- Predeterminado:
semaphore_config_email_alerts_port
: puerto smtp.- Predeterminado:
25
- Predeterminado:
semaphore_config_email_alerts_sender
: dirección de correo del remitente de las alertas.- Predeterminado:
semaphore@localhost
- Predeterminado:
semaphore_config_web_root
: la raíz web que usarías para acceder a la aplicación. se utiliza para generar URLs en las alertas.- Predeterminado:
http://{{ ansible_fqdn }}:{{ semaphore_port }}/
- Predeterminado:
semaphore_config_telegram_alerts_enable
: habilitar alertas de telegram.- Predeterminado:
no
- Predeterminado:
semaphore_config_telegram_alerts_bot_token
: obtener de @BotFather.- Predeterminado:
''
- Predeterminado:
semaphore_config_telegram_alerts_chat_id
: tu id de chat de telegram.- Predeterminado:
''
- Predeterminado:
semaphore_config_ldap_enable
: habilitar autenticación ldap.- Predeterminado:
no
- Predeterminado:
semaphore_config_ldap_server
: servidor ldap.- Predeterminado:
localhost
- Predeterminado:
semaphore_config_ldap_port
: puerto ldap.- Predeterminado:
389
- Predeterminado:
semaphore_config_ldap_use_tls
: usar tls al conectarse al servidor ldap.- Predeterminado:
no
- Predeterminado:
semaphore_config_ldap_bind_dn
: bind dn.- Predeterminado:
cn=user,ou=users,dc=example.tld
- Predeterminado:
semaphore_config_ldap_bind_password
: .- Predeterminado:
pa55w0rd
- Predeterminado:
semaphore_config_ldap_search_dn
: search dn.- Predeterminado:
ou=users,dc=example.tld
- Predeterminado:
semaphore_config_ldap_search_filter
: filtro de búsqueda.- Predeterminado:
(uid=%s)
- Predeterminado:
semaphore_config_ldap_mapping_dn_field
: mapeo al campo dn.- Predeterminado:
dn
- Predeterminado:
semaphore_config_ldap_mapping_username_field
: mapeo al campo de nombre de usuario.- Predeterminado:
uid
- Predeterminado:
semaphore_config_ldap_mapping_fullname_field
: mapeo al campo de nombre completo.- Predeterminado:
cn
- Predeterminado:
semaphore_config_ldap_mapping_email_field
: mapeo al campo de correo electrónico.- Predeterminado:
mail
- Predeterminado:
semaphore_service_user_name
: cuenta que ejecutará el servicio de la aplicación. no ejecutar como root.- Predeterminado:
semaphore
NOTA: si el usuario no existe, se creará una cuenta de servicio.
- Predeterminado:
semaphore_service_user_password
: contraseña de la cuenta que ejecutará el servicio.- Requerido
NOTA: no proporcionar esto permitirá otorgar sudo sin contraseña a la cuenta.
se necesita una contraseña para ejecutar playbooks locales desde semaphore a través de
become_password
.La contraseña debe ser un valor encriptado compatible con el módulo de usuario de ansible.
Puedes crear una usando:
python -c 'import crypt; print crypt.crypt("Esta es la contraseña", "$1$ThisIsSomeSalt$")'
- Requerido
Inicialización
Estas variables son relevantes solo para el proceso de inicialización y se pueden modificar en el archivo vars.json
generado.
semaphore_db_admin_home
: directorio para almacenar .my.cnf para mariadb.- Predeterminado:
/root
- Predeterminado:
semaphore_db_admin_user
: nombre de usuario del administrador de la base de datos.- Predeterminado:
admin
- Predeterminado:
semaphore_db_admin_password
: contraseña del administrador de la base de datos.- Requerido
semaphore_ansible_cfg_vault_password
: contraseña del vault.- Predeterminado:
''
- Predeterminado:
semaphore_ansible_cfg_vault_password_file
: ubicación del archivo de contraseña del vault.- Predeterminado:
/var/lib/semaphore/.vpf
- Predeterminado:
semaphore_ansible_cfg_host_key_checking
: habilitar la verificación de claves del host.- Predeterminado:
False
- Opciones:
True
False
- Predeterminado:
semaphore_ansible_cfg_ansible_managed
: cadena administrada por ansible para archivos gestionados. utilizada por algunos roles.- Predeterminado:
NO MODIFICAR a mano. Este archivo está bajo control de Ansible en {host}.
- Predeterminado:
Ejemplo de Uso
- hosts: all
vars:
semaphore_config_auth_email: '[email protected]'
semaphore_config_auth_password: '4dm1nPa55w0rd'
semaphore_service_user_password: '$1$ThisIsSo$RwIOJHdSWIzAJjbvBdbOZ0'
semaphore_ansible_cfg_vault_password: 'pa55w0rd'
roles:
- thedumbtechguy.semaphore
Licencia
MIT / BSD
Información del Autor
Este rol fue creado por TheDumbTechGuy ( twitter | blog | galaxy )
Créditos
ansible-galaxy install thedumbtechguy.semaphore