From 96777f6864e0fd3007e828e955cbb49dda33960f Mon Sep 17 00:00:00 2001 From: opal Date: Thu, 26 Sep 2024 18:20:43 -0700 Subject: [PATCH] creating trisquel playbook --- playbooks/trisquel.yml | 7 ++ roles/fedora_git/tasks/main.yml | 10 -- roles/fedora_git/vars/main.yml | 8 +- roles/trisquel_setup/handlers/main.yml | 5 + roles/trisquel_setup/tasks/main.yml | 86 +++++++++++++++++ .../templates/NetworkManager.conf.j2 | 6 ++ roles/trisquel_setup/templates/resolv.conf.j2 | 4 + roles/trisquel_setup/vars/main.yml | 93 +++++++++++++++++++ 8 files changed, 202 insertions(+), 17 deletions(-) create mode 100755 playbooks/trisquel.yml create mode 100755 roles/trisquel_setup/handlers/main.yml create mode 100755 roles/trisquel_setup/tasks/main.yml create mode 100755 roles/trisquel_setup/templates/NetworkManager.conf.j2 create mode 100755 roles/trisquel_setup/templates/resolv.conf.j2 create mode 100755 roles/trisquel_setup/vars/main.yml diff --git a/playbooks/trisquel.yml b/playbooks/trisquel.yml new file mode 100755 index 0000000..e66a8e1 --- /dev/null +++ b/playbooks/trisquel.yml @@ -0,0 +1,7 @@ +--- +- name: trisquel setup + hosts: workstation + roles: + - role: trisquel_setup + tags: trisquel_setup + diff --git a/roles/fedora_git/tasks/main.yml b/roles/fedora_git/tasks/main.yml index b146d80..a25f16d 100755 --- a/roles/fedora_git/tasks/main.yml +++ b/roles/fedora_git/tasks/main.yml @@ -14,13 +14,3 @@ repo: "{{ etbook_repo }}" dest: "{{ etbook_dest }}" update: no - -- name: Move ET-Book directory to fonts directory - copy: - src: "{{ etbook_dir }}" - dest: "{{ fonts_dir }}" - -- name: Move ET-Book Ligatures directory to fonts directory - copy: - src: "{{ etbook_lig_dir }}" - dest: "{{ fonts_dir }}" diff --git a/roles/fedora_git/vars/main.yml b/roles/fedora_git/vars/main.yml index bf79d00..f94fb82 100755 --- a/roles/fedora_git/vars/main.yml +++ b/roles/fedora_git/vars/main.yml @@ -3,10 +3,4 @@ doom_emacs_repo: https://github.com/doomemacs/doomemacs doom_emacs_dest: ~/.config/emacs etbook_repo: https://github.com/edwardtufte/et-book -etbook_dest: ~/src/et-book -etbook_dir: ~/src/et-book/et-book -etbook_lig_dir: ~/src/et-book/et-book-ligatures-enabled -fonts_dir: ~/.local/share/fonts - - - +etbook_dest: ~/.local/share/fonts diff --git a/roles/trisquel_setup/handlers/main.yml b/roles/trisquel_setup/handlers/main.yml new file mode 100755 index 0000000..31e9e0e --- /dev/null +++ b/roles/trisquel_setup/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: Restart NetworkManager + service: + name: NetworkManager + state: restarted diff --git a/roles/trisquel_setup/tasks/main.yml b/roles/trisquel_setup/tasks/main.yml new file mode 100755 index 0000000..2907338 --- /dev/null +++ b/roles/trisquel_setup/tasks/main.yml @@ -0,0 +1,86 @@ +--- +- name: Ensure Users are Configured Correctly + user: + name: "{{ item.value.name }}" + group: "{{ item.value.group }}" + groups: "{{ item.value.groups }}" + state: "{{ item.value.state }}" + create_home: "{{ item.value.create_home }}" + shell: "{{ item.value.shell }}" + loop: "{{ init_users | dict2items }}" + +- name: Create or ensure presence of custom home directories + file: + path: /home/opal/{{ item }} + state: directory + mode: '0755' + owner: opal + group: opal + loop: "{{ create_directories }}" + +- name: Remove default home directories if present + file: + path: /home/opal/{{ item }} + state: absent + loop: "{{ remove_directories }}" + +# SSH Initial Setup +- name: Create/Ensure ~/.ssh directories + file: + path: "/home/{{ item.value.name }}/.ssh" + state: directory + mode: 0700 + owner: "{{ item.value.name }}" + group: "{{ item.value.group }}" + loop: "{{ init_users | dict2items }}" + +- name: Upgrade all packages + package: + name: "*" + state: latest + +- name: Install window manager packages + package: + name: "{{ item }}" + state: present + loop: "{{ wm_packages }}" + +- name: Install UI/Font packages + package: + name: "{{ item }}" + state: present + loop: "{{ ui_packages }}" + +- name: Install general packages + package: + name: "{{ item }}" + state: present + loop: "{{ general_packages }}" + +- name: Install Doom Emacs dependency packages + package: + name: "{{ item }}" + state: present + loop: "{{ doom_dep_packages }}" + +- name: Add Flathub repository + flatpak_remote: + name: flathub + state: present + flatpakrepo_url: "https://flathub.org/repo/flathub.flatpakrepo" + +- name: doom emacs repo + become: yes + become_user: opal + git: + repo: "{{ doom_emacs_repo }}" + dest: "{{ doom_emacs_dest }}" + update: no + +- name: et-book font repo + become: yes + become_user: opal + git: + repo: "{{ etbook_repo }}" + dest: "{{ etbook_dest }}" + update: no diff --git a/roles/trisquel_setup/templates/NetworkManager.conf.j2 b/roles/trisquel_setup/templates/NetworkManager.conf.j2 new file mode 100755 index 0000000..2ae904a --- /dev/null +++ b/roles/trisquel_setup/templates/NetworkManager.conf.j2 @@ -0,0 +1,6 @@ +# MANAGED BY ANSIBLE # +[main] +plugins=ifupdown,keyfile + +[ifupdown] +managed=true diff --git a/roles/trisquel_setup/templates/resolv.conf.j2 b/roles/trisquel_setup/templates/resolv.conf.j2 new file mode 100755 index 0000000..efd7a4f --- /dev/null +++ b/roles/trisquel_setup/templates/resolv.conf.j2 @@ -0,0 +1,4 @@ +# This file is managed by Ansible # +nameserver 1.1.1.2 +nameserver 1.0.0.2 +nameserver 2606:4700:4700:0:0:0:0:1112 diff --git a/roles/trisquel_setup/vars/main.yml b/roles/trisquel_setup/vars/main.yml new file mode 100755 index 0000000..067ed64 --- /dev/null +++ b/roles/trisquel_setup/vars/main.yml @@ -0,0 +1,93 @@ +--- +remove_directories: + - Templates + - Videos + - Documents + - Music + - Downloads + - Pictures + - Public + - Desktop + +create_directories: + - documents + - music + - downloads + - pictures + - scripts + - projects + - src + - .config + - .local/share + - .local/share/fonts + +init_users: + opal: + name: opal + group: opal + groups: + - sudo + state: present + shell: /bin/bash + create_home: true + +wm_packages: + - sway + - swayidle + - swaylock + - foot + - waybar + - dunst + - pipewire + - grim + - grimshot + - brightnessctl + - wlogout + - xwayland + - wdisplays + - wtype + +ui_packages: + - papirus-icon-theme + - arc-theme + - breeze-cursor-theme + - qt5ct + - fonts-font-awesome + - fonts-noto-color-emoji + - fonts-noto-cjk + - fonts-recommended + - xfonts-terminus + +general_packages: + - syncthing + - keychain + - gnupg2 + - tldr + - trash-cli + - htop + - udiskie + - pavucontrol + - flatpak + - blueman + - playerctl # for waybar music notification + - simple-scan + - wireguard + +flatpak_packages: + - org.torproject.torbrowser-launcher + +doom_dep_packages: + - fd-find + - ripgrep + - libtool # Needed to compile vterm in Doom Emacs + - libtool-bin + - cmake # Needed to compile vterm in Doom Emacs + - discount # Markdown Compiler + - shellcheck # Shell linter for Doom Emacs + + +doom_emacs_repo: https://github.com/doomemacs/doomemacs +doom_emacs_dest: ~/.config/emacs + +etbook_repo: https://github.com/edwardtufte/et-book +etbook_dest: ~/.local/share/fonts