@@ -0,0 +1,11 @@
|
|||||||
|
when:
|
||||||
|
- event: push
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: lint
|
||||||
|
image: alpine
|
||||||
|
commands:
|
||||||
|
- export PATH=$PATH:/root/.local/bin
|
||||||
|
- apk add --no-cache make pipx
|
||||||
|
- make setup
|
||||||
|
- make lint
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
.PHONY: setup
|
||||||
|
setup:
|
||||||
|
pipx install --include-deps yamllint
|
||||||
|
pipx install --include-deps ansible
|
||||||
|
pipx inject --include-apps ansible molecule
|
||||||
|
pipx inject --include-apps ansible ansible-lint
|
||||||
|
pipx inject ansible "molecule-plugins[docker,podman]"
|
||||||
|
|
||||||
|
.PHONY: lint
|
||||||
|
lint:
|
||||||
|
yamllint -d "{extends: relaxed, rules: {line-length: disable}}" .
|
||||||
|
ansible-lint
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
[defaults]
|
||||||
|
inventory = inventory.ini
|
||||||
|
host_key_checking = False
|
||||||
|
timeout = 60
|
||||||
|
interpreter_python = auto
|
||||||
|
|
||||||
|
[ssh_connection]
|
||||||
|
ssh_args=-o ControlMaster=auto -o ControlPersist=60s -o ControlPath=/tmp/ansible-ssh-%h-%p-%r -o ForwardAgent=yes
|
||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env -S ansible-playbook --ask-pass --ask-become-pass
|
||||||
|
- name: Kubuntu Ansible
|
||||||
|
hosts: htpc
|
||||||
|
become: true
|
||||||
|
roles:
|
||||||
|
- role: firefox
|
||||||
|
tags: firefox
|
||||||
|
- role: network_shares
|
||||||
|
tags: network_shares
|
||||||
|
- role: nosnap
|
||||||
|
tags: nosnap
|
||||||
|
tasks:
|
||||||
|
- name: Install VLC
|
||||||
|
ansible.builtin.apt:
|
||||||
|
name: vlc
|
||||||
|
update_cache: true
|
||||||
|
cache_valid_time: 3600
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
[local]
|
||||||
|
127.0.0.1 ansible_connection=local
|
||||||
|
|
||||||
|
[htpc]
|
||||||
|
aragorn.local ansible_user=simon
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
- name: Add Google apt repository key.
|
||||||
|
ansible.builtin.get_url:
|
||||||
|
url: https://dl.google.com/linux/linux_signing_key.pub
|
||||||
|
dest: /etc/apt/keyrings/google.asc
|
||||||
|
mode: "0644"
|
||||||
|
force: true
|
||||||
|
|
||||||
|
- name: Add Google Repository
|
||||||
|
ansible.builtin.apt_repository:
|
||||||
|
repo: deb [arch=amd64 signed-by=/etc/apt/keyrings/google.asc] https://dl.google.com/linux/chrome/deb/ stable main
|
||||||
|
filename: google-chrome-ansible
|
||||||
|
state: present
|
||||||
|
|
||||||
|
# https://support.google.com/chrome/a/answer/9052345?hl=en#zippy=%2Cstep-turn-off-chrome-browser-updates
|
||||||
|
- name: Disable google-chrome-stable sources
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: /etc/default/google-chrome
|
||||||
|
content: |
|
||||||
|
repo_add_once="false"
|
||||||
|
repo_reenable_on_distupgrade="false"
|
||||||
|
mode: "0644"
|
||||||
|
|
||||||
|
- name: Update apt and install google-chrome-stable
|
||||||
|
ansible.builtin.apt:
|
||||||
|
name: google-chrome-stable
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
Package: *
|
||||||
|
Pin: origin packages.mozilla.org
|
||||||
|
Pin-Priority: 1000
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
- name: Add Mozilla apt repository key.
|
||||||
|
ansible.builtin.get_url:
|
||||||
|
url: https://packages.mozilla.org/apt/repo-signing-key.gpg
|
||||||
|
dest: /etc/apt/keyrings/packages.mozilla.org.asc
|
||||||
|
mode: "0644"
|
||||||
|
force: true
|
||||||
|
|
||||||
|
- name: Add Mozilla Repository
|
||||||
|
ansible.builtin.apt_repository:
|
||||||
|
repo: deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main
|
||||||
|
filename: mozilla
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Copy Mozilla apt preferences
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: mozilla.pref
|
||||||
|
dest: /etc/apt/preferences.d/mozilla.pref
|
||||||
|
mode: "0644"
|
||||||
|
|
||||||
|
- name: Update apt and install Firefox
|
||||||
|
ansible.builtin.apt:
|
||||||
|
name: firefox
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=\\neo\tank automount
|
||||||
|
|
||||||
|
[Automount]
|
||||||
|
Where=/mnt/tank
|
||||||
|
TimeoutIdleSec=300
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
- name: Install cifs-utils
|
||||||
|
ansible.builtin.apt:
|
||||||
|
name: cifs-utils
|
||||||
|
update_cache: true
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Lookup user name
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
network_shares_user_name: "{{ lookup('env', 'USER') }}"
|
||||||
|
|
||||||
|
- name: Get user passwd info for {{ network_shares_user_name }}
|
||||||
|
ansible.builtin.getent:
|
||||||
|
database: passwd
|
||||||
|
key: "{{ network_shares_user_name }}"
|
||||||
|
|
||||||
|
- name: Extract user id and gid
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
network_shares_user_id: "{{ ansible_facts.getent_passwd[network_shares_user_name].1 }}"
|
||||||
|
network_shares_user_gid: "{{ ansible_facts.getent_passwd[network_shares_user_name].2 }}"
|
||||||
|
|
||||||
|
- name: Copy mount file
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: mnt-tank.mount.j2
|
||||||
|
dest: /etc/systemd/system/mnt-tank.mount
|
||||||
|
mode: "0644"
|
||||||
|
|
||||||
|
- name: Copy automount file
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: mnt-tank.automount
|
||||||
|
dest: /etc/systemd/system/mnt-tank.automount
|
||||||
|
mode: "0644"
|
||||||
|
|
||||||
|
- name: Enable automount
|
||||||
|
ansible.builtin.systemd_service:
|
||||||
|
name: mnt-tank.automount
|
||||||
|
enabled: true
|
||||||
|
daemon-reload: true
|
||||||
|
state: started
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=\\neo\tank mount
|
||||||
|
|
||||||
|
[Mount]
|
||||||
|
What=//192.168.0.200/tank
|
||||||
|
Where=/mnt/tank
|
||||||
|
Type=cifs
|
||||||
|
Options=guest,uid={{ network_shares_user_id }},gid={{ network_shares_user_gid }},iocharset=utf8,ro
|
||||||
|
LazyUnmount=true
|
||||||
|
TimeoutSec=10
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
# To prevent repository packages from triggering the installation of Snap,
|
||||||
|
# this file forbids snapd from being installed by APT.
|
||||||
|
# For more information: https://linuxmint-user-guide.readthedocs.io/en/latest/snap.html
|
||||||
|
|
||||||
|
Package: snapd
|
||||||
|
Pin: release a=*
|
||||||
|
Pin-Priority: -10
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
- name: Remove snapd
|
||||||
|
ansible.builtin.apt:
|
||||||
|
name: snapd
|
||||||
|
state: absent
|
||||||
|
autoremove: true
|
||||||
|
purge: true
|
||||||
|
|
||||||
|
- name: Copy nosnap apt preferences
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: nosnap.pref
|
||||||
|
dest: /etc/apt/preferences.d/nosnap.pref
|
||||||
|
mode: "0644"
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
- name: Add debian repo
|
||||||
|
ansible.builtin.deb822_repository:
|
||||||
|
name: vscodium
|
||||||
|
architectures:
|
||||||
|
- amd64
|
||||||
|
- arm64
|
||||||
|
types: deb
|
||||||
|
uris: https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/debs
|
||||||
|
suites: vscodium
|
||||||
|
components: main
|
||||||
|
signed_by: https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg
|
||||||
|
|
||||||
|
- name: Install vscodium
|
||||||
|
ansible.builtin.apt:
|
||||||
|
name: codium
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
Executable
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env -S ansible-playbook --ask-become-pass
|
||||||
|
- name: Kubuntu Ansible
|
||||||
|
hosts: local
|
||||||
|
become_exe: "{{ 'sudo.ws' if ansible_facts.packages['sudo-rs'] is defined else 'sudo' }}"
|
||||||
|
become: true
|
||||||
|
roles:
|
||||||
|
- role: firefox
|
||||||
|
tags: firefox
|
||||||
|
- role: network_shares
|
||||||
|
tags: network_shares
|
||||||
|
- role: nosnap
|
||||||
|
tags: nosnap
|
||||||
|
- role: vscodium
|
||||||
|
tags: vscodium
|
||||||
Reference in New Issue
Block a user