Ansible playbook to setup my workstation with my archlinux flavor.
ansible | ||
archinstall_configs | ||
docs | ||
target | ||
vm_tools | ||
.gitignore | ||
INSTALL.md | ||
README.md | ||
TODO.md |
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
- use the profiles defined in
- 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
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.