Remove old manjaro playbook
Now that we've split into proper ansible roles, remove the old manjaro playbook.
This commit is contained in:
@@ -1,508 +0,0 @@
|
|||||||
- name: Setup Workstation
|
|
||||||
hosts: localhost
|
|
||||||
vars:
|
|
||||||
executable_temp_dir: /tmp
|
|
||||||
awscli_install_dir: /opt/aws-cli/
|
|
||||||
vault_version: 1.9.3
|
|
||||||
swap_file_path: /swap/swapfile
|
|
||||||
swap_file_size_mb: 4096
|
|
||||||
|
|
||||||
tasks:
|
|
||||||
# Sync and update Pacman
|
|
||||||
- name: Sync and update Pacman
|
|
||||||
community.general.pacman:
|
|
||||||
update_cache: yes
|
|
||||||
upgrade: yes
|
|
||||||
become: yes
|
|
||||||
|
|
||||||
# SSH
|
|
||||||
- name: Ensure openssh installed
|
|
||||||
community.general.pacman:
|
|
||||||
name: openssh
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Curl SSH trusted CA
|
|
||||||
get_url:
|
|
||||||
url: https://vault.ducoterra.net/v1/ssh-client-signer/public_key
|
|
||||||
dest: /etc/ssh/trusted-user-ca-keys.pem
|
|
||||||
mode: '0660'
|
|
||||||
become: yes
|
|
||||||
- name: Create sshd_config file
|
|
||||||
copy:
|
|
||||||
dest: "/etc/ssh/sshd_config"
|
|
||||||
content: |
|
|
||||||
AuthorizedKeysFile .ssh/authorized_keys
|
|
||||||
PasswordAuthentication no
|
|
||||||
KbdInteractiveAuthentication no
|
|
||||||
UsePAM yes
|
|
||||||
PrintMotd no # pam does that
|
|
||||||
Subsystem sftp /usr/lib/ssh/sftp-server
|
|
||||||
TrustedUserCAKeys /etc/ssh/trusted-user-ca-keys.pem
|
|
||||||
become: yes
|
|
||||||
- name: Ensure ssh service started
|
|
||||||
ansible.builtin.systemd:
|
|
||||||
name: sshd
|
|
||||||
state: restarted
|
|
||||||
daemon_reload: yes
|
|
||||||
enabled: yes
|
|
||||||
become: yes
|
|
||||||
|
|
||||||
# UFW
|
|
||||||
- name: Ensure UFW installed
|
|
||||||
community.general.pacman:
|
|
||||||
name: ufw
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Enable UFW
|
|
||||||
community.general.ufw:
|
|
||||||
state: enabled
|
|
||||||
become: yes
|
|
||||||
- name: Allow SSH
|
|
||||||
community.general.ufw:
|
|
||||||
rule: allow
|
|
||||||
name: ssh
|
|
||||||
become: yes
|
|
||||||
|
|
||||||
# System Tools
|
|
||||||
- name: Ensure grub installed
|
|
||||||
community.general.pacman:
|
|
||||||
name: grub
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Ensure bluez installed
|
|
||||||
community.general.pacman:
|
|
||||||
name:
|
|
||||||
- bluez
|
|
||||||
- bluez-utils
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Ensure bluetooth service started
|
|
||||||
ansible.builtin.systemd:
|
|
||||||
name: bluetooth
|
|
||||||
state: started
|
|
||||||
enabled: yes
|
|
||||||
become: yes
|
|
||||||
- name: Ensure glances installed
|
|
||||||
community.general.pacman:
|
|
||||||
name: glances
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Ensure htop installed
|
|
||||||
community.general.pacman:
|
|
||||||
name: htop
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Ensure curl and wget
|
|
||||||
community.general.pacman:
|
|
||||||
name:
|
|
||||||
- curl
|
|
||||||
- wget
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Ensure dconf-editor
|
|
||||||
community.general.pacman:
|
|
||||||
name: dconf-editor
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Ensure yay installed
|
|
||||||
community.general.pacman:
|
|
||||||
name: yay
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
|
|
||||||
# Install DNET CA
|
|
||||||
- name: Download DNET CA
|
|
||||||
get_url:
|
|
||||||
url: https://vault.ducoterra.net/v1/dnet/ca
|
|
||||||
dest: /etc/ca-certificates/trust-source/anchors/dnet_ca.crt
|
|
||||||
mode: '0660'
|
|
||||||
become: yes
|
|
||||||
- name: Update trust store
|
|
||||||
command: trust extract-compat
|
|
||||||
become: yes
|
|
||||||
|
|
||||||
# dconf settings
|
|
||||||
- name: Turn off palm rejection
|
|
||||||
command: dconf write /org/gnome/desktop/peripherals/touchpad/disable-while-typing false
|
|
||||||
- name: Set flat mouse acceleration profile
|
|
||||||
command: dconf write /org/gnome/desktop/peripherals/mouse/accel-profile "'flat'"
|
|
||||||
- name: Center new windows
|
|
||||||
command: dconf write /org/gnome/mutter/center-new-windows true
|
|
||||||
|
|
||||||
# Gnome extensions
|
|
||||||
- name: Enable gnome extensions
|
|
||||||
command: 'gnome-extensions enable {{ item }}'
|
|
||||||
loop:
|
|
||||||
- bluetooth-quick-connect@bjarosze.gmail.com
|
|
||||||
- clipboard-indicator@tudmotu.com
|
|
||||||
- freon@UshakovVasilii_Github.yahoo.com
|
|
||||||
- sound-output-device-chooser@kgshank.net
|
|
||||||
- tactile@lundal.io
|
|
||||||
|
|
||||||
# Daily Driver Tools
|
|
||||||
- name: Ensure vim installed
|
|
||||||
community.general.pacman:
|
|
||||||
name: vim
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Ensure unzip installed
|
|
||||||
community.general.pacman:
|
|
||||||
name: unzip
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Ensure chromium installed
|
|
||||||
community.general.pacman:
|
|
||||||
name: chromium
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Ensure steam installed
|
|
||||||
community.general.pacman:
|
|
||||||
name: steam-manjaro
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Ensure discord installed
|
|
||||||
community.general.pacman:
|
|
||||||
name: discord
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Ensure geary installed
|
|
||||||
community.general.pacman:
|
|
||||||
name: geary
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Ensure appimagelauncher installed
|
|
||||||
community.general.pacman:
|
|
||||||
name: appimagelauncher
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Ensure Applications directory
|
|
||||||
file:
|
|
||||||
path: ~/Applications
|
|
||||||
state: directory
|
|
||||||
|
|
||||||
|
|
||||||
# Developer Tools
|
|
||||||
- name: Ensure wine installed
|
|
||||||
community.general.pacman:
|
|
||||||
name:
|
|
||||||
- wine
|
|
||||||
- winetricks
|
|
||||||
- wine-mono
|
|
||||||
- wine_gecko
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Ensure wireguard installed
|
|
||||||
community.general.pacman:
|
|
||||||
name: wireguard-tools
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Ensure ping installed
|
|
||||||
community.general.pacman:
|
|
||||||
name: iputils
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Ensure nslookup installed
|
|
||||||
community.general.pacman:
|
|
||||||
name: dnsutils
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Ensure iperf3 installed
|
|
||||||
community.general.pacman:
|
|
||||||
name: iperf3
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Ensure remmina (RDP) installed
|
|
||||||
community.general.pacman:
|
|
||||||
name:
|
|
||||||
- remmina
|
|
||||||
- freerdp
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Ensure docker installed
|
|
||||||
community.general.pacman:
|
|
||||||
name:
|
|
||||||
- docker
|
|
||||||
- docker-compose
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Ensure ducoterra in the "docker" group
|
|
||||||
ansible.builtin.user:
|
|
||||||
name: ducoterra
|
|
||||||
groups: docker
|
|
||||||
append: yes
|
|
||||||
become: yes
|
|
||||||
- name: Ensure kubectl installed
|
|
||||||
community.general.pacman:
|
|
||||||
name: kubectl
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Ensure python and pip instaled
|
|
||||||
community.general.pacman:
|
|
||||||
name:
|
|
||||||
- python
|
|
||||||
- python-pip
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Install ansible
|
|
||||||
pip:
|
|
||||||
name: ansible
|
|
||||||
extra_args: --user
|
|
||||||
- name: Ensure qmk installed
|
|
||||||
community.general.pacman:
|
|
||||||
name: qmk
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Run qmk setup
|
|
||||||
ansible.builtin.command: qmk setup -y
|
|
||||||
become: yes
|
|
||||||
- name: Copy qmk udev rules
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: ~/qmk_firmware/util/udev/50-qmk.rules
|
|
||||||
dest: /etc/udev/rules.d/50-qmk.rules
|
|
||||||
owner: ducoterra
|
|
||||||
group: root
|
|
||||||
mode: '0755'
|
|
||||||
become: yes
|
|
||||||
|
|
||||||
# AWS CLI
|
|
||||||
- name: Download awscli v2 installer - latest version
|
|
||||||
unarchive:
|
|
||||||
src: https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip
|
|
||||||
dest: '{{ executable_temp_dir }}'
|
|
||||||
remote_src: true
|
|
||||||
creates: '{{ executable_temp_dir }}/aws'
|
|
||||||
mode: 0755
|
|
||||||
when: awscli_version is not defined
|
|
||||||
tags: ["awscli", "awscliv2"]
|
|
||||||
- name: Download awscli v2 installer - specific version {{ awscli_version }}
|
|
||||||
unarchive:
|
|
||||||
src: 'https://awscli.amazonaws.com/awscli-exe-linux-x86_64-{{ awscli_version }}.zip'
|
|
||||||
dest: "{{ executable_temp_dir }}"
|
|
||||||
remote_src: true
|
|
||||||
creates: '{{ executable_temp_dir }}/aws'
|
|
||||||
mode: 0755
|
|
||||||
when: awscli_version is defined
|
|
||||||
tags: ["awscli", "awscliv2"]
|
|
||||||
- name: Run the installer for awscli v2
|
|
||||||
command:
|
|
||||||
args:
|
|
||||||
cmd: '{{ executable_temp_dir }}/aws/install -i {{ awscli_install_dir }} -b /usr/local/bin'
|
|
||||||
creates: /usr/local/bin/aws
|
|
||||||
become: yes
|
|
||||||
tags: ["awscli", "awscliv2"]
|
|
||||||
|
|
||||||
# Vault CLI
|
|
||||||
- name: Download vault binary
|
|
||||||
unarchive:
|
|
||||||
src: https://releases.hashicorp.com/vault/{{vault_version}}/vault_{{vault_version}}_linux_amd64.zip
|
|
||||||
dest: '{{ executable_temp_dir }}'
|
|
||||||
remote_src: true
|
|
||||||
creates: '{{ executable_temp_dir }}/vault'
|
|
||||||
mode: 0755
|
|
||||||
- name: Move vault binary to /usr/local/bin
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: '{{ executable_temp_dir }}/vault'
|
|
||||||
dest: /usr/local/bin/vault
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: '0755'
|
|
||||||
become: yes
|
|
||||||
|
|
||||||
# Snap Installs
|
|
||||||
- name: Ensure snap installed
|
|
||||||
community.general.pacman:
|
|
||||||
name: snapd
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
- name: Ensure snapd service running
|
|
||||||
ansible.builtin.systemd:
|
|
||||||
name: snapd.socket
|
|
||||||
state: started
|
|
||||||
enabled: yes
|
|
||||||
become: yes
|
|
||||||
- name: Link /var/lib/snapd/snap /snap
|
|
||||||
ansible.builtin.file:
|
|
||||||
src: /var/lib/snapd/snap
|
|
||||||
dest: /snap
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
state: link
|
|
||||||
become: yes
|
|
||||||
- name: Install snap-store
|
|
||||||
community.general.snap:
|
|
||||||
name: snap-store
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
retries: 6
|
|
||||||
delay: 10
|
|
||||||
- name: Install vscode
|
|
||||||
community.general.snap:
|
|
||||||
name: code
|
|
||||||
state: present
|
|
||||||
classic: yes
|
|
||||||
become: yes
|
|
||||||
- name: Install spotify
|
|
||||||
community.general.snap:
|
|
||||||
name: spotify
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
|
|
||||||
# Create swap
|
|
||||||
- name: Turn off swap
|
|
||||||
command: "swapoff --all"
|
|
||||||
become: yes
|
|
||||||
- name: Remove old swap file
|
|
||||||
file:
|
|
||||||
state: absent
|
|
||||||
path: "{{ swap_file_path }}"
|
|
||||||
become: yes
|
|
||||||
- name: Create swap file
|
|
||||||
command: truncate -s 0 "{{ swap_file_path }}"
|
|
||||||
creates="{{ swap_file_path }}"
|
|
||||||
become: yes
|
|
||||||
- name: Set swap compression
|
|
||||||
command: chattr +C "{{ swap_file_path }}"
|
|
||||||
become: yes
|
|
||||||
- name: Allocate swap space
|
|
||||||
command: fallocate -l "{{ swap_file_size_mb }}M" "{{ swap_file_path }}"
|
|
||||||
become: yes
|
|
||||||
- name: Change swap file permissions
|
|
||||||
file: path="{{ swap_file_path }}"
|
|
||||||
owner=root
|
|
||||||
group=root
|
|
||||||
mode=0600
|
|
||||||
become: yes
|
|
||||||
- name: "Check swap file type"
|
|
||||||
command: file {{ swap_file_path }}
|
|
||||||
register: swapfile
|
|
||||||
become: yes
|
|
||||||
- name: Make swap file
|
|
||||||
command: "mkswap {{ swap_file_path }}"
|
|
||||||
become: yes
|
|
||||||
- name: Write swap entry in fstab
|
|
||||||
mount: name=none
|
|
||||||
src={{ swap_file_path }}
|
|
||||||
fstype=swap
|
|
||||||
opts=sw
|
|
||||||
passno=0
|
|
||||||
dump=0
|
|
||||||
state=present
|
|
||||||
become: yes
|
|
||||||
- name: Mount swap
|
|
||||||
command: "swapon {{ swap_file_path }}"
|
|
||||||
become: yes
|
|
||||||
- name: Set swappiness
|
|
||||||
command: sysctl -w vm.swappiness=1
|
|
||||||
become: yes
|
|
||||||
- name: Make swappiness permanent
|
|
||||||
copy:
|
|
||||||
dest: "/etc/sysctl.d/99-swappiness.conf"
|
|
||||||
content: |
|
|
||||||
vm.swappiness=1
|
|
||||||
become: yes
|
|
||||||
|
|
||||||
# Minecraft
|
|
||||||
- name: Clone minecraft-launcher repo
|
|
||||||
ansible.builtin.git:
|
|
||||||
repo: 'https://aur.archlinux.org/minecraft-launcher.git'
|
|
||||||
dest: '{{ executable_temp_dir }}/minecraft-launcher'
|
|
||||||
- name: Install minecraft-launcher with makepkg
|
|
||||||
command: makepkg -si --noconfirm
|
|
||||||
args:
|
|
||||||
chdir: '{{ executable_temp_dir }}/minecraft-launcher'
|
|
||||||
|
|
||||||
# Citrix ICA Client (Citrix Receiver)
|
|
||||||
- name: Clone citrix-receiver repo
|
|
||||||
ansible.builtin.git:
|
|
||||||
repo: 'https://aur.archlinux.org/icaclient.git'
|
|
||||||
dest: '{{ executable_temp_dir }}/citrix-receiver'
|
|
||||||
- name: Install citrix-receiver with makepkg
|
|
||||||
command: makepkg -si --noconfirm
|
|
||||||
args:
|
|
||||||
chdir: '{{ executable_temp_dir }}/citrix-receiver'
|
|
||||||
- name: Create INI client dir for citrix receiver
|
|
||||||
file:
|
|
||||||
state: directory
|
|
||||||
path: '~/.ICAClient/cache'
|
|
||||||
- name: Copy INI Files to ICAClient so citrix receiver works
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: '/opt/Citrix/ICAClient/config/{{ item }}.ini'
|
|
||||||
dest: '~/.ICAClient/{{ item }}.ini'
|
|
||||||
loop:
|
|
||||||
- All_Regions
|
|
||||||
- Trusted_Region
|
|
||||||
- Unknown_Region
|
|
||||||
- canonicalization
|
|
||||||
- regions
|
|
||||||
|
|
||||||
# Backup
|
|
||||||
- name: Create backup mount directory
|
|
||||||
file:
|
|
||||||
state: directory
|
|
||||||
path: '/mnt/backup0'
|
|
||||||
become: yes
|
|
||||||
tags: backup
|
|
||||||
- name: Ensure backup0 device exists in crypttab
|
|
||||||
community.general.crypttab:
|
|
||||||
name: backup0
|
|
||||||
backing_device: UUID=1d7ce570-e695-47a0-9dda-5f14b5b20e21
|
|
||||||
password: /home/ducoterra/.lukskeys/backup0
|
|
||||||
opts: luks
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
no_log: true
|
|
||||||
tags: backup
|
|
||||||
- name: Ensure backup0 mount exists in fstab
|
|
||||||
ansible.posix.mount:
|
|
||||||
path: /mnt/backup0
|
|
||||||
src: /dev/mapper/backup0
|
|
||||||
fstype: btrfs
|
|
||||||
opts: defaults,noatime,compress=zstd
|
|
||||||
state: present
|
|
||||||
become: yes
|
|
||||||
tags: backup
|
|
||||||
- name: Ensure /usr/local/scripts exists
|
|
||||||
file:
|
|
||||||
state: directory
|
|
||||||
path: '/usr/local/scripts'
|
|
||||||
become: yes
|
|
||||||
tags: backup
|
|
||||||
- name: Copy btrfs_backup.sh
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: scripts/btrfs_backup.sh
|
|
||||||
dest: /usr/local/scripts/btrfs_backup.sh
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: '0760'
|
|
||||||
become: yes
|
|
||||||
tags: backup
|
|
||||||
- name: Ensure hourly backups of /
|
|
||||||
ansible.builtin.cron:
|
|
||||||
name: "hourly backup of /"
|
|
||||||
minute: "0"
|
|
||||||
job: "export SOURCE_DIR=/; /usr/local/scripts/btrfs_backup.sh"
|
|
||||||
become: yes
|
|
||||||
tags: backup
|
|
||||||
- name: Ensure hourly backups of /home
|
|
||||||
ansible.builtin.cron:
|
|
||||||
name: "hourly backup of /home"
|
|
||||||
minute: "0"
|
|
||||||
job: "export SOURCE_DIR=/home; /usr/local/scripts/btrfs_backup.sh"
|
|
||||||
become: yes
|
|
||||||
tags: backup
|
|
||||||
- name: Ensure cronie service started
|
|
||||||
ansible.builtin.systemd:
|
|
||||||
name: cronie
|
|
||||||
state: restarted
|
|
||||||
daemon_reload: yes
|
|
||||||
enabled: yes
|
|
||||||
become: yes
|
|
||||||
tags: backup
|
|
||||||
|
|
||||||
# Secure Boot
|
|
||||||
# https://gist.github.com/umbernhard/d1f4a44430d6d21b3881652c7a7c9ae5
|
|
||||||
|
|
||||||
# Reboot
|
|
||||||
# - name: Unconditionally reboot the machine with all defaults
|
|
||||||
# reboot:
|
|
||||||
# become: yes
|
|
||||||
Reference in New Issue
Block a user