add ansible playbook setup

This commit is contained in:
Alexander Navarro 2025-07-21 11:57:03 -04:00
parent 78bfbc3ed6
commit dbd29507bb
9 changed files with 179 additions and 14 deletions

View file

@ -156,6 +156,7 @@ vim.filetype.add({
-- ╰─────────────────────────────────────────────────────────╯ -- ╰─────────────────────────────────────────────────────────╯
vim.lsp.enable({ vim.lsp.enable({
"ansiblels", "ansiblels",
"bashls",
"lua_ls", "lua_ls",
"nushell", "nushell",
"pyright", "pyright",

View file

@ -2,7 +2,7 @@
# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas. # If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas.
"$schema" = "https://yazi-rs.github.io/schemas/keymap.json" "$schema" = "https://yazi-rs.github.io/schemas/keymap.json"
[manager] [mgr]
prepend_keymap = [ prepend_keymap = [
{ on = ["<Esc>"], run = "escape --all", desc = "Exit visual mode, clear selected, or cancel search" }, { on = ["<Esc>"], run = "escape --all", desc = "Exit visual mode, clear selected, or cancel search" },

View file

@ -1,12 +1,7 @@
[[plugin.deps]] [[plugin.deps]]
use = "yazi-rs/plugins:full-border" use = "yazi-rs/plugins:full-border"
rev = "5186af7" rev = "1ab21d4"
hash = "ae9e1d0c6bfd68cdebc98cc684c22b45" hash = "3996fc74044bc44144b323686f887e1"
[[plugin.deps]]
use = "GianniBYoung/rsync"
rev = "3f431aa"
hash = "1854a5a30d23e84bc8df24700f27957b"
[[plugin.deps]] [[plugin.deps]]
use = "Ape/simple-status" use = "Ape/simple-status"
@ -15,10 +10,10 @@ hash = "68603fdd1dcaf415227e2c77a9317947"
[[plugin.deps]] [[plugin.deps]]
use = "yazi-rs/plugins:smart-enter" use = "yazi-rs/plugins:smart-enter"
rev = "5186af7" rev = "1ab21d4"
hash = "aef2b1a805b80cce573bb766f1459d88" hash = "56fdabc96fc1f4d53c96eb884b02a5be"
[[flavor.deps]] [[flavor.deps]]
use = "yazi-rs/flavors:catppuccin-macchiato" use = "yazi-rs/flavors:catppuccin-macchiato"
rev = "c023460" rev = "d3fd3a5"
hash = "3ec21bcfd2735cfcbab61faaf43e59e4" hash = "e6c5beeb1da3199355734273ee452a7f"

View file

@ -1,2 +1,3 @@
[flavor] [flavor]
use = "catppuccin-macchiato" light = "catppuccin-macchiato"
dark = "catppuccin-macchiato"

View file

@ -2,7 +2,7 @@
# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas. # If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas.
"$schema" = "https://yazi-rs.github.io/schemas/yazi.json" "$schema" = "https://yazi-rs.github.io/schemas/yazi.json"
[manager] [mgr]
ratio = [1, 3, 4] ratio = [1, 3, 4]
sort_by = "alphabetical" sort_by = "alphabetical"
sort_sensitive = false sort_sensitive = false

View file

@ -5,6 +5,12 @@
Please ensure the that git is installed and you have an ssh key registered, Please ensure the that git is installed and you have an ssh key registered,
then execute the following command: then execute the following command:
```bash
curl -SsL https://git.alecodes.page/alecodes/dots/raw/branch/main/bootstrap/bootstrap.sh | bash
```
Optionally, manually clone the repo to `~/.config/dotfiles/` and then execute:
```bash ```bash
curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash

27
bootstrap/bootstrap.sh Executable file
View file

@ -0,0 +1,27 @@
#!/usr/bin/env bash
set -eou pipefail
if ! command -v uv >/dev/null 2>&1; then
echo -e "Installing UV...\n"
curl -LsSf https://astral.sh/uv/install.sh | sh
fi
echo -e "Executing playbook...\n"
if [[ -d ~/.config/dotfiles ]]; then
pushd ~/.config/dotfiles/bootstrap/ || exit
# dotfiles are cloned, executed localy
uvx --from ansible ansible-playbook --ask-become-pass -v bootstrap.yaml
else
# dotfiles are not cloned, executed remotly
uvx --from ansible ansible-pull --ask-become-pass --url ssh://git@git.alecodes.page:24062/alecodes/dots.git bootstrap/bootstrap.yaml
fi
popd || exit
echo -e "Done!\n"

61
bootstrap/bootstrap.yaml Normal file
View file

@ -0,0 +1,61 @@
- name: Bootstrap system installation
hosts: localhost
vars_files:
- ./variables.yaml
tasks:
- name: Fedora setup
when: ansible_facts['distribution'] == "Fedora"
block:
- name: Enable copr repos
become: true
loop: "{{ distros.fedora.copr }}"
community.general.copr:
state: enabled
name: "{{ item }}"
- name: Install packages
become: true
ansible.builtin.package:
state: present
name: "{{ distros.Global.packages }}"
- name: 'Ensure rustup is setup'
ansible.builtin.command: "{{ (ansible_facts['pkg_mgr'] in ['dnf5']) | ternary('rustup-init -y --no-modify-path', 'rustup --no-modify-path -y') }}"
args:
creates: ~/.cargo/env
- name: "Installing Cargo Binstall"
ansible.builtin.unarchive:
remote_src: true
src: https://github.com/cargo-bins/cargo-binstall/releases/latest/download/cargo-binstall-x86_64-unknown-linux-musl.tgz
dest: "{{ ansible_env.HOME }}/.cargo/bin/"
keep_newer: true
extra_opts:
- "--no-anchored"
- "cargo-binstall"
- name: 'Install cargo packages'
loop: "{{ distros[ansible_facts['distribution']].cargo }}"
ansible.builtin.command:
cmd: "cargo binstall --no-confirm --locked {{ item.pkg }}"
creates: "{{ ansible_env.HOME }}/.cargo/bin/{{ item.bin }}"
- name: Generate an OpenSSH keypair
community.crypto.openssh_keypair:
path: ~/.ssh/id_ed25519
type: ed25519
- name: Clone dotfiles
ignore_errors: true
notify: Deploy dots
ansible.builtin.git:
accept_newhostkey: true
repo: ssh://git@git.alecodes.page:24062/alecodes/dots.git
dest: ~/.config/dotfiles
update: true
version: main
handlers:
- name: Deploy dots
ansible.builtin.command: tuckr add *

74
bootstrap/variables.yaml Normal file
View file

@ -0,0 +1,74 @@
distros:
Fedora:
copr:
- atim/lazygit
- the4runner/firefox-dev
packages: {}
cargo:
- pkg: yazi-fm
bin: yazi
- pkg: yazi-cli
bin: yazi
Global:
packages:
- adwaita-cursor-theme
- adwaita-icon-theme
- adwaita-icon-theme-legacy
- adwaita-mono-fonts
- adwaita-sans-fonts
- bat
- breeze-icon-theme
- breeze-icon-theme-fedora
- curl
- duf
- eza
- fd-find
- firefox-dev
- fish
- flatpak
- fzf
- git
- grim
- kitty
- lazygit
- neovim
- nodejs
- openssh
- openssh-askpass
- openssh-clients
- openssh-server
- openssl
- openssl-devel
- openssl-libs
- php-cli
- php-common
- php-intl
- php-mbstring
- php-pecl-zip
- php-process
- php-soap
- php-xml
- rhythmbox
- ripgrep
- rofi-themes
- rofi-wayland
- rofimoji
- rootfiles
- rsync
- rustup
- sd
- sed
- sushi
- swappy
- tailscale
- tealdeer
- trash-cli
- tree
- tree-sitter-cli
- udisks2
- unrar
- unrar-free
- unzip
- zip
- zoxide