@@ -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