add ansible playbook setup
This commit is contained in:
parent
78bfbc3ed6
commit
b6eea93564
9 changed files with 196 additions and 14 deletions
|
|
@ -156,6 +156,7 @@ vim.filetype.add({
|
||||||
-- ╰─────────────────────────────────────────────────────────╯
|
-- ╰─────────────────────────────────────────────────────────╯
|
||||||
vim.lsp.enable({
|
vim.lsp.enable({
|
||||||
"ansiblels",
|
"ansiblels",
|
||||||
|
"bashls",
|
||||||
"lua_ls",
|
"lua_ls",
|
||||||
"nushell",
|
"nushell",
|
||||||
"pyright",
|
"pyright",
|
||||||
|
|
|
||||||
|
|
@ -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" },
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,3 @@
|
||||||
[flavor]
|
[flavor]
|
||||||
use = "catppuccin-macchiato"
|
light = "catppuccin-macchiato"
|
||||||
|
dark = "catppuccin-macchiato"
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
29
bootstrap/bootstrap.sh
Executable file
29
bootstrap/bootstrap.sh
Executable file
|
|
@ -0,0 +1,29 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -eou pipefail
|
||||||
|
|
||||||
|
export ANSIBLE_STDOUT_CALLBACK=minimal
|
||||||
|
|
||||||
|
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 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"
|
||||||
69
bootstrap/bootstrap.yaml
Normal file
69
bootstrap/bootstrap.yaml
Normal file
|
|
@ -0,0 +1,69 @@
|
||||||
|
- 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 }}"
|
||||||
|
register: cargo_log
|
||||||
|
notify:
|
||||||
|
- Deploy dots
|
||||||
|
- Install yazi packages
|
||||||
|
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
|
||||||
|
- Install yazi packages
|
||||||
|
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 *
|
||||||
|
- name: Install yazi packages
|
||||||
|
ansible.builtin.command: ya pkg install
|
||||||
81
bootstrap/variables.yaml
Normal file
81
bootstrap/variables.yaml
Normal file
|
|
@ -0,0 +1,81 @@
|
||||||
|
distros:
|
||||||
|
Fedora:
|
||||||
|
copr:
|
||||||
|
- atim/lazygit
|
||||||
|
- the4runner/firefox-dev
|
||||||
|
packages: {}
|
||||||
|
cargo:
|
||||||
|
- pkg: yazi-fm
|
||||||
|
bin: yazi
|
||||||
|
- pkg: yazi-cli
|
||||||
|
bin: yazi
|
||||||
|
- pkg: tuckr
|
||||||
|
bin: tuckr
|
||||||
|
|
||||||
|
Arch:
|
||||||
|
packages:
|
||||||
|
- tuckr-git
|
||||||
|
cargo: {}
|
||||||
|
|
||||||
|
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
|
||||||
Loading…
Add table
Add a link
Reference in a new issue