osmollo / my_workstation

Ansible para la instalación de software y personalización de estaciones de trabajo con Linux. Distribuciones soportadas: Debian, Ubuntu, Linux Mint, Fedora, Arch y Manjaro

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ansible

Distribuciones soportadas

DISTRIBUCIÓN LINKS DE DESCARGA
Ubuntu Enlace
Fedora Enlace
Debian Enlace
Deepin Enlace
Linux Mint Enlace
Pop!_OS Enlace
KDE Neon Enlace
Arch Linux Enlace
Manjaro Enlace

Software extra instalado

Por defecto se instala el siguiente software:

APLICACIÓN TAG VARIABLE GRUPO DESCRIPCIÓN
1Password 1password install_1password pass_managers Instala gestor de contraseñas 1Password
Apache Directory Studio apachedirectory install_apachedirectory dev Cliente de LDAP
Balena Etcher etcher install_etcher tools Aplicación para quemar imágenes iso en usb
Bat bat install_bat tools cat vitaminado
Beekeeper Studio beekeeer install_beekeeper dev Cliente gráfico para BBDD
BFG Repo-Cleaner bfg install_bfg git Herramienta para trabajar con el histórico de git
Bitwarden bitwarden install_bitwarden pass_managers Gestor de contraseñas
Brave brave install_brave browsers Navegador web
Broot broot install_broot tools Terminal file browser
Bottom bottom install_bottom tools top vitaminado
Bucklespring bucklespring install_bucklespring tools Herramienta para simular el ruido de un teclado mecánico
Buttercup buttercup install_buttercup pass_managers Gestor de contraseñas
Cherrytree cherrytree install_cherrytree editors Editor de textos
Chromium Browser chromium install_chromium browsers Navegador web libre basado en Chrome
Consul consul install_consul tools Service discovery
CopyQ copyq install_copyq Gestor de portapapeles
curlie curlie install_curlie tools Curl vitaminado
DBeaver dbeaver install_dbeaver dev Manager de conexiones a BBDD
Deluge Torrent deluge install_deluge desktop Cliente de Torrent
Docker docker install_docker containers Gestión de contenedores Docker
Draw.io drawio install_drawio desktop Editor de diagramas
Dropbox dropbox install_dropbox storage Cliente de almacenamiento en la nube
Duf duf install_duf tools du vitaminado
Edge edge install_edge browsers Navegador Microsoft Edge
Element element install_element social cliente de mensajería para matrix.org
ERDtree erdtree install_erdtree tools tree vitaminado
Franz franz install_franz social Administrador de clientes de mensajería
FZF fzf install_fzf tools Buscador difuso de archivos
Github CLI githubcli install_githubcli git Cli de consola para Github
Gitkraken gitkraken install_gitkraken git Cliente gráfico de git
Gitnuro gitnuro install_gitnuro git Cliente gráfico de git
GlobalProtect globalprotect install_globalprotect vpn Cliente VPN
GO go install_go dev Compilador del lenguaje GO
Google Chrome chrome install_chrome browsers Navegador web
Google Fonts google_fonts install_fonts Fuentes tipográficas de Google
GOpass gopass install_gopass pass_managers Gestor de contraseñas
Gping gping install_gping tools ping vitaminado
Hashicorp stask hashicorp install_hashicorp tools Stack de aplicaciones de Hashicorp: Vault, Terraform, Consul y Nomad
Helix helix install_helix editors Helix text editor
Hiri hiri install_hiri mail Cliente de correo
Java java install_java dev Lenguaje Java
k8s_tools k8s_tools install_k8s_tools k8s Herramientas de Kubernetes
KDEnlive kdenlive install_kdenlive desktop Editor de video para KDE
KeepassXC keepass install_keepass pass_managers Gestor de contraseñas
Kodi kodi install_kodi media Media center
Lexnet lexnet install_lexnet browsers Firefox 50.1 + Java para acceder a Lexnet (sólo para abogados)
Librewolf librewolf install_librewolf browsers Navegador web Librewolf (fork de Firefox)
LSD lsd install_lsd tools binario para listar directorios
Mailspring mailspring install_mailspring mail Cliente de correo electrónico
MAME mame install_mame games Emulador de juegos de recreativas
MarkText marktext install_marktext editors Editor de Markdown
MEGA sync megasync install_megasync storage Cliente de almacenamiento en la nube de Mega
MEGAcmd megacmd install_megacmd storage Cliente de almacenamiento en la nube de Mega para terminal
NeoVim neovim install_neovim editors Editor de texto
NoMachine nomachine install_nomachine remotes Cliente de escritorio remoto
Nomad nomad install_nomad tools Orchestration tool for deploying and managing applications
OBS Studio obs install_obs media Grabación de video y transmissión en vivo
Oh my BASH! ohmybash install_ohmybash shell Personalización de BASH
Oh my ZSH! ohmyzsh install_ohmyzsh shell Personalización de ZSH
Podman podman install_podman containers Gestor de contenedores
Poetry poetry install_poetry dev Gestor de proyectos para Python
Postman postman install_postman dev Cliente REST API
Prezto prezto install_prezto shell Personalización de ZSH (fork mejorado de Oh my Zsh)
PROCS procs install_procs tools Reemplazo de ps
Prospect Mail prospect install_prospect mail Cliente de mail para Outlook
ProtonVPN protonvpn install_protonvpn vpn Cliente de VPN
Pulsar pulsar install_pulsar editors Editor de texto basado en Atom
PyCharm Community pycharm install_pycharm editors IDE para Python
Rambox rambox install_rambox social Gestor de clientes de mensajería
Rancher CLI rancher install_rancher k8s CLI para Rancher
Rclone rclone install_rclone storage Tool de nubes de almacenamiento
ripgrep ripgrep install_ripgrep tools grep vitaminado
Singlebox singlebox install_singlebox social Administrador de clientes de mensajería
Skype skype install_skype social Cliente de mensajería de Skype
Slack slack install_slack social Cliente de mensajería para entornos de trabajo
Snyk snyk install_snyk dev Buscador de vulnerabilidades
SoapUI soapui install_soapui dev Cliente API SoapUI
Spotify spotify install_spotify media Cliente de Spotify
Starship starship install_starship shell Gestor de configuración del prompt
Steam steam install_steam games Cliente Steam para juegos de PC
Sublime Merge sublimemerge install_sublimemerge git Cliente gráfico de git
Sublime Text sublimetext install_sublimetext editors Editor de textos
Syncthing syncthing install_syncthing storage Sincronización entre varios servidores
Teams teams install_teams social Gestor de comunicaciones Microsoft Teams
Teamviewer teamviewer install_teamviewer remotes Cliente de escritorio remoto
Telegram Desktop telegram install_telegram social Cliente de escritorio de mensajería Telegram
Terraform terraform install_terraform tools Creación de infraestructura
Thincast thincast install_thincast remote Cliente de escritorio remoto
TLP tlp install_tlp tools Gestión de batería (sólo para Thinkpad)
Tmux tmux install_tmux tools Multiplexador de terminal avanzado
Trilium Notes trilium install_trilium editors Editor de notas
Trivy trivy install_trivy containers Scanner de vulnerabilidades de contenedores docker
Vault vault install_vault tools Cliente/Servidor de gestión de secretos
Vim plugins vimplugins install_vimplugins editors Instalación de plugins de VIM
Virtualbox virtualbox install_virtualbox virtualization Virtualización (incluye Vagrant)
Visual Studio Code vscode install_vscode editors Editor de textos
Visual Studio Codium vscodium install_vscodium editors Editor de textos libre pasado en VS Code
Vivaldi vivaldi install_vivaldi browsers Navegador web
Windscribe windscribe install_windscribe vpn Cliente de VPN
Wireguard wireguard install_wireguard vpn Cliente de VPN
WoeUSB woeusb install_woeusb tools Herramienta para quemar iso de windows en usb
YakYak yakyak install_yakyak social Cliente de mensajería para Hangouts
yq yq install_yq tools Parseador json, yaml y xml
Zoom zoom install_zoom social Cliente de videoconferencia
Zoxide zoxide install_zoxide tools Navegación inteligente por directorios

En caso de que no se quiera instalar alguna de las anteriores aplicaciones, se puede indicar a través de las extravars con la correspondiente variable a false. Por ejemplo, para instalar todo el software extra excepto Spotify y Oh my zsh!:

ansible-playbook install.yml -e "install_spotify=false install_ohmyzsh=false"

En caso contrario, si lo único que se quiere hacer es instalar alguna de las aplicaciones, hay que usar el tag correspondiente, que coincide con las variables anteriores. Por ejemplo, para instalar Visual Studio Code:

ansible-playbook install.yml -t "vscode,dropbox,spotify"

En el siguiente punto, se explica cómo generar una configuración específica de usuario con el software que se desea instalar

¿Cómo se usa?

  • Las tareas de este repositorio se ejecutan en local, por lo que para poder ejecutar los playbooks es necesario tener instalado git y ansible:
# Para Fedora
sudo dnf install git ansible

# Para Ubuntu
sudo apt install git ansible

# Para Arch
sudo pacman -S git ansible

A continuación habrá que clonar este repositorio (da igual el directorio de destino):

git clone https://github.com/osmollo/my_workstation.git /tmp/repo
cd /tmp/repo/ansible
ansible-playbook install.yml

No todas las aplicaciones se instalan por defecto, este comportamiento se encuentra definido en el fichero ./roles/extra_software/defaults/main.yml donde hay una serie de variables install_ que indican si la correspondiente aplicación se instala o no. Para modificar este comportamiento, puede editarse dicho fichero o cambiar el valor de la variable por extravars:

ansible-playbook install.yml -t chromium -e install_chromium=true

Post instalación

Las variables necesarias para la ejecución de este role se encuentran en ./roles/post_install/defaults/main.yml.gpg. Para poder tener acceso a todos los secretos necesarios para la configuración, es necesario ejecutar el siguiente comando:

eval $(op signin)

Y a continuación ejecutar los siguientes playbooks:

ansible-playbook playbooks/prepare_post.yml
ansible-playbook post_install.yml

Aquí se puede consultar la documentación de la post instalación

Deshabilitar actualizaciones

Una de las primeras tareas que se ejecutan es la actualización de los paquetes del sistema. Esta tarea no se lanzará si hace menos de una semana que se ha ejecutado pero también es posible deshabilitarla de las siguientes formas:

  • Variable de entorno

Hay que exportar la variable REPO_DISABLE_UPDATES con valor 1. Cualquier otro valor se considerará false y se actualizarán los paquetes

export REPO_DISABLE_UPDATES=1
  • Extravars
ansible-playbook install.yml -e disable_updates=true
  • Fichero
sudo touch /var/tmp/.update

Otros playbooks

Documentado aquí

Ejecución de comandos ansible ad-hoc

ansible localhost -m shell -a "df -h"

Actualización de CHANGELOG.md

Para poder actualizar el CHANGELOG.md con los cambios que se han realizado entre 2 tags hay que ejecutar el siguiente comando:

git log --pretty=oneline <tag_antiguo> <tag_nuevo>

Y entre el último tag y el último commit:

git log --pretty=oneline HEAD...tag

Emoji Cheat Sheet

Aquí se puede encontrar la lista de emojis disponibles para markdown

Invítame a un café

Si te ha sido de ayuda este repositorio, pero sobretodo si te apetece, puedes invitarme a un café

buy me a coffee

About

Ansible para la instalación de software y personalización de estaciones de trabajo con Linux. Distribuciones soportadas: Debian, Ubuntu, Linux Mint, Fedora, Arch y Manjaro

License:MIT License


Languages

Language:Python 38.1%Language:Scheme 28.6%Language:Jinja 16.6%Language:Shell 16.3%Language:Vim Script 0.4%