Ansible playbook to setup my workstation with my archlinux flavor.
Find a file
2025-10-02 13:13:49 +02:00
ansible feat(package): add os-prober 2025-10-02 13:13:49 +02:00
archinstall_configs fix(archinstall): refresh user config 2025-09-17 11:15:28 +02:00
docs docs: add mailboxes local dir 2025-05-10 12:57:20 +02:00
target fix: add run.sh on example host 2024-08-05 22:49:45 +02:00
vm_tools wip 2024-05-26 22:17:13 +02:00
.gitignore fix: add vm_files to gitignore 2024-07-04 11:25:02 +02:00
INSTALL.md WIP 2025-09-22 14:20:35 +02:00
README.md feat: copy static configs from dotsfiles repo 2025-10-02 13:05:15 +02:00
TODO.md feat: copy static configs from dotsfiles repo 2025-10-02 13:05:15 +02:00

MonakhOS: My general workstation environment

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

Architecture:

  • Sway
  • Support of dots file repository
  • A single venv in dots containing all utilities and libs

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
  • install with archinstall to initialize the computer
    • use the profiles defined in archinstall_configs
  • connect to the internet
  • enable an ssh server to access it from the ansible runner host
  • on the host, generate a private ssh key
  • add the public key on the target host
  • create a target directory in target directory
  • configure vars.yaml, see example vars file
  • create on the host, the private ssh key that will be installed on target
  • add this sshkey to your forge that host your dots file, eg. 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

Pacman packages

defined in dots file

arch_packages.yaml

categories: commons, work

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/

Known issues

SSH known hosts

You need to keep updated the known hosts in your profiles to not have this info erased each time you play the ansible book.

Pistes

triage

The master ssh key is used by the controller to authenticate to the ssh server of the target device.

architecture

  • Monakhos base
  • Monakhos profile perso/pro
  • Dots base
  • Dots desktop