Ansible playbook to setup my workstation with my archlinux flavor.
Find a file
2024-06-03 23:04:51 +02:00
ansible fix: xremap 2024-06-03 23:02:33 +02:00
target feat: add target 2024-06-03 23:04:51 +02:00
vm_tools wip 2024-05-26 22:17:13 +02:00
.gitignore initial commit 2024-05-22 17:35:11 +02:00
README.md wip 2024-05-26 22:17:13 +02:00
TODO.md update 2024-05-27 23:19:04 +02:00

MonakhOS: My general workstation environment

Code name given on 2024-05-16 : "MonakhOS"

Architecture:

  • Sway

  • A single venv in dots containing all utilities and libs

Ansible

https://github.com/id101010/ansible-archlinux

Getting started with a VM (qemu)

Cd in sandbox_vms/vm1

Create the QCow base image.

../../ansible/run_ansible_playbook.sh base.img

Run the image, use remmina to install with archinstall.

With Archinstall add:

  • desktop profile
    • sway
    • ly greeter
  • networkmanager

Create snapshot to be able to quickly restart the ansible script with a clean image

qemu-img create -f qcow2 -b base.img -F qcow2 after_arch_install.img

qemu-img create -f qcow2 -b after_arch_install.img -F qcow2 after_ssh_init.img

qemu-img create -f qcow2 -b after_ssh_init.img -F qcow2 ready_for_ansible.img

Steps to install

  • find a new name for the device eg. blackjack
  • connect to wifi
  • enable ssh server to access it from the exterior
  • generate ssh key
  • add sshkey to forge.lefuturiste.fr

Generate a unprotected default ssh key

ssh-keygen -t ed25519 -C "mbess@blackjack"

no passphrase

ECDSA-SK, Ed25519 and Ed25519-SK keys have a fixed length and the -b flag will be ignored.

Configure ~/.ssh/config

# set as default
IdentityFile ~/.ssh/unprotected_ed25519

Host *
    ServerAliveInterval 40

Host forge.lefuturiste.fr
    user git
    IdentitiesOnly yes
    IdentityFile ~/.ssh/unprotected_ed25519

Host aur.archlinux.org
    IdentityFile ~/.ssh/id_aur
    User aur

Clone dots

cd ~
git clone git@forge.lefuturiste.fr:mbess/dots .dots
cd ~/.dots
python3 -m venv venv

pip install -r requirements.txt

# create symbolic link to access dots
ln -s ~/.dots ~/dots

install yay

git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

configure Zsh

https://wiki.archlinux.org/title/Zsh

configure xremap

sudo systemctl daemon-reload

sudo systemctl enable --now xremap

Import and configure GPG keys

Configure unix password manager

using extra/gopass

run the script setup_dot.sh

Shell

Fish

install fisher

https://github.com/jorgebucaran/fisher

use fisher package

fzf fish

https://github.com/PatrickF1/fzf.fish

require fd and bat

lfcd

https://github.com/gokcehan/lf/blob/master/etc/lfcd.fish

Zsh

https://yewtu.be/watch?v=ud7YxC33Z3w https://github.com/jeffreytse/zsh-vi-mode

How to handle different profiles

Pacman packages

defined in dots file

arch_packages.yaml

Sway

swayidle

https://stackoverflow.com/questions/68694093/how-to-prevent-swayidle-from-execution-while-watching-a-film

Greeter

Ly is a TUI greeter, it will show a terminal based login prompt

https://github.com/fairyglade/ly

ansible

auto run archinstall with ansible

  • question: how to overwrite the drive config and set it to auto ?

https://archinstall.archlinux.page/

Pistes

https://github.com/kewlfft/ansible-aur