Ansible playbook to setup my workstation with my archlinux flavor.
Find a file
2024-12-11 18:44:49 +01:00
ansible fix: update local directories 2024-12-11 18:44:49 +01:00
archinstall_configs feat: various update to install work pro laptop 2024-07-03 18:03:08 +02:00
docs fix: update local directories 2024-12-11 18:44:49 +01: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 feat: various update to install work pro laptop 2024-07-03 18:03:08 +02:00
README.md fix: re-order creation of workspaces 2024-11-23 17:36:29 +01:00
TODO.md feat: add downgrade and sd 2024-11-13 12:39:40 +01: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