Use simpler file structure
This commit is contained in:
parent
8ea9414418
commit
d5ca1ac81d
74 changed files with 398 additions and 477 deletions
|
|
@ -1,5 +0,0 @@
|
||||||
parseable: true
|
|
||||||
quiet: true
|
|
||||||
skip_list:
|
|
||||||
- '501'
|
|
||||||
use_default_rules: true
|
|
||||||
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -12,3 +12,5 @@ node_modules/
|
||||||
.vaults/
|
.vaults/
|
||||||
vault
|
vault
|
||||||
vaults/
|
vaults/
|
||||||
|
|
||||||
|
roles/
|
||||||
|
|
|
||||||
|
|
@ -3,40 +3,24 @@ stages:
|
||||||
- test
|
- test
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
key: "$CI_COMMIT_REF_SLUG"
|
key: $CI_COMMIT_REF_SLUG
|
||||||
paths:
|
paths:
|
||||||
- .cache/pip
|
- .cache/pip
|
||||||
- node_modules/
|
- node_modules/
|
||||||
|
|
||||||
lint:
|
lint:
|
||||||
stage: lint
|
|
||||||
image: python:3.7
|
|
||||||
before_script:
|
|
||||||
- pip install ansible ansible-lint --quiet
|
|
||||||
script:
|
|
||||||
- ansible-lint playbook.yml
|
|
||||||
only:
|
|
||||||
refs:
|
|
||||||
- development
|
|
||||||
- merge_requests
|
|
||||||
|
|
||||||
pretty-lint:
|
|
||||||
stage: lint
|
stage: lint
|
||||||
image: node:12
|
image: node:12
|
||||||
before_script:
|
before_script:
|
||||||
- npm install
|
- npm install prettier --no-save
|
||||||
script:
|
script:
|
||||||
- npx prettier "**/*.yml" --check
|
- npx prettier '**/*.yml' --check
|
||||||
only:
|
|
||||||
refs:
|
|
||||||
- development
|
|
||||||
- merge_requests
|
|
||||||
|
|
||||||
syntax-test:
|
syntax-test:
|
||||||
stage: test
|
stage: test
|
||||||
image: python:3.7
|
image: python:3.7
|
||||||
before_script:
|
before_script:
|
||||||
- pip install ansible ansible-lint --quiet
|
- pip install ansible --quiet
|
||||||
- ansible-galaxy install -r roles/requirements.yml
|
- ansible-galaxy install -r requirements.yml
|
||||||
script:
|
script:
|
||||||
- ansible-playbook playbook.yml --syntax-check
|
- ansible-playbook playbook.yml --syntax-check
|
||||||
|
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
"singleQuote": true,
|
|
||||||
"printWidth": 90,
|
|
||||||
"tabWidth": 2,
|
|
||||||
"useTabs": false,
|
|
||||||
"bracketSpacing": true,
|
|
||||||
"parser": "yaml"
|
|
||||||
}
|
|
||||||
|
|
||||||
5
.prettierrc.yml
Normal file
5
.prettierrc.yml
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
singleQuote: true
|
||||||
|
printWidth: 90
|
||||||
|
tabWidth: 2
|
||||||
|
useTabs: false
|
||||||
|
bracketSpacing: true
|
||||||
30
playbook.yml
30
playbook.yml
|
|
@ -1,3 +1,31 @@
|
||||||
- hosts: localhost
|
- hosts: localhost
|
||||||
|
pre_tasks:
|
||||||
|
- name: install shared packages
|
||||||
|
become: yes
|
||||||
|
pacman:
|
||||||
|
name: '{{ packages }}'
|
||||||
|
- name: detecting platform
|
||||||
|
import_tasks: 'tasks/platform.yml'
|
||||||
|
- name: install platform specific packages
|
||||||
|
become: yes
|
||||||
|
pacman:
|
||||||
|
name: '{{ platform_packages }}'
|
||||||
roles:
|
roles:
|
||||||
- arch
|
- common
|
||||||
|
tasks:
|
||||||
|
- import_tasks: 'tasks/setup.yml'
|
||||||
|
- import_tasks: 'tasks/network.yml'
|
||||||
|
- import_tasks: 'tasks/systemd.yml'
|
||||||
|
- import_tasks: 'tasks/openvpn.yml'
|
||||||
|
- import_tasks: 'tasks/git.yml'
|
||||||
|
- import_tasks: 'tasks/mpv.yml'
|
||||||
|
- import_tasks: 'tasks/mpd.yml'
|
||||||
|
- import_tasks: 'tasks/syncthing.yml'
|
||||||
|
- import_tasks: 'tasks/timer.yml'
|
||||||
|
handlers:
|
||||||
|
- import_tasks: 'handlers.yml'
|
||||||
|
vars_files:
|
||||||
|
- 'vars/main.yml'
|
||||||
|
- 'vars/gpg.yml'
|
||||||
|
- 'vars/vpn.yml'
|
||||||
|
- 'vars/mpd.yml'
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,3 @@
|
||||||
name: common
|
name: common
|
||||||
version: master
|
version: master
|
||||||
scm: git
|
scm: git
|
||||||
- src: git+https://git.fudiggity.nl/ansible/npm.git
|
|
||||||
name: npm
|
|
||||||
version: master
|
|
||||||
scm: git
|
|
||||||
6
roles/.gitignore
vendored
6
roles/.gitignore
vendored
|
|
@ -1,6 +0,0 @@
|
||||||
# ignore all external roles and files in the roles dir
|
|
||||||
/*
|
|
||||||
|
|
||||||
!.gitignore
|
|
||||||
!requirements.yml
|
|
||||||
!arch*/
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
gpg_pub_key: "82C21552D732C65C1A4FB340037103F03CA5CBA1"
|
|
||||||
gpg_passphrase: !vault |
|
|
||||||
$ANSIBLE_VAULT;1.1;AES256
|
|
||||||
61383265343062663836623033343538333562636433383735383862306465316439376333373563
|
|
||||||
6131336136653533323561633434633961393061623233640a366430396532326465326530356136
|
|
||||||
36616636363134386333616137656333353439633832633731373834336239393337316366626462
|
|
||||||
6164343331613663620a303363353064376630633939363831373339383961626137376361323438
|
|
||||||
3463
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
mpd_listen_address: "127.0.0.1"
|
|
||||||
mpd_listen_port: "6600"
|
|
||||||
|
|
||||||
mpd_database_address: "10.8.0.1"
|
|
||||||
mpd_database_port: "21000"
|
|
||||||
|
|
||||||
mpd_configuration_dir: "{{ ansible_env.HOME }}/.config/mpd"
|
|
||||||
mpd_music_dir: "{{ ansible_env.HOME }}/music"
|
|
||||||
mpd_playlist_dir: "{{ mpd_configuration_dir }}/playlists"
|
|
||||||
mpd_state_path: "{{ mpd_configuration_dir }}/state"
|
|
||||||
mpd_sticker_path: "{{ mpd_configuration_dir }}/sticker.sql"
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
vpn_ip: "178.85.119.159"
|
|
||||||
vpn_port: "7531"
|
|
||||||
vpn_interface: "tun0"
|
|
||||||
vpn_protocol: "udp"
|
|
||||||
vpn_verbosity: "1"
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
dependencies:
|
|
||||||
- common
|
|
||||||
|
|
||||||
galaxy_info:
|
|
||||||
author: sonny
|
|
||||||
description: "Sets up an arch environment"
|
|
||||||
license: "license GPLv3"
|
|
||||||
min_ansible_version: 2.7
|
|
||||||
issue_tracker_url: "https://git.fudiggity.nl/ansible/arch-setup/issues"
|
|
||||||
platforms:
|
|
||||||
- name: Archlinux
|
|
||||||
galaxy_tags:
|
|
||||||
- system
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
||||||
- name: copy git configuration
|
|
||||||
template:
|
|
||||||
src: "gitconfig.j2"
|
|
||||||
dest: "{{ ansible_env.HOME }}/.gitconfig"
|
|
||||||
|
|
||||||
- name: copy keys
|
|
||||||
copy:
|
|
||||||
src: "{{ item.src }}"
|
|
||||||
dest: "{{ item.dest }}"
|
|
||||||
loop:
|
|
||||||
- {
|
|
||||||
src: "gpg_key", dest: "{{ ansible_env.HOME }}/gpg.key"
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
src: "gpg_pub", dest: "{{ ansible_env.HOME }}/gpg.pub"
|
|
||||||
}
|
|
||||||
|
|
||||||
- name: import secret key
|
|
||||||
command: "gpg --passphrase {{ gpg_passphrase }} --import ~/gpg.key"
|
|
||||||
|
|
||||||
- name: import public key
|
|
||||||
command: "gpg --import ~/gpg.pub"
|
|
||||||
|
|
||||||
- name: remove temp keys
|
|
||||||
file:
|
|
||||||
path: "{{ item }}"
|
|
||||||
state: absent
|
|
||||||
loop:
|
|
||||||
- "{{ ansible_env.HOME }}/gpg.key"
|
|
||||||
- "{{ ansible_env.HOME }}/gpg.pub"
|
|
||||||
|
|
@ -1,69 +0,0 @@
|
||||||
- name: install shared packages
|
|
||||||
become: yes
|
|
||||||
pacman:
|
|
||||||
name: "{{ packages }}"
|
|
||||||
|
|
||||||
- name: detecting platform
|
|
||||||
import_tasks: platform.yml
|
|
||||||
|
|
||||||
- name: install platform specific packages
|
|
||||||
become: yes
|
|
||||||
pacman:
|
|
||||||
name: "{{ platform_packages }}"
|
|
||||||
|
|
||||||
- name: configuring network
|
|
||||||
import_tasks: network.yml
|
|
||||||
|
|
||||||
- name: copy reflector configuration
|
|
||||||
become: yes
|
|
||||||
template:
|
|
||||||
src: "reflector.j2"
|
|
||||||
dest: "/etc/xdg/reflector/reflector.conf"
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: "0600"
|
|
||||||
|
|
||||||
# started by weekly timer
|
|
||||||
- name: disable reflector
|
|
||||||
become: true
|
|
||||||
systemd:
|
|
||||||
name: reflector
|
|
||||||
state: stopped
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
- name: copy pacman configuration
|
|
||||||
become: yes
|
|
||||||
template:
|
|
||||||
src: "pacman.j2"
|
|
||||||
dest: "/etc/pacman.conf"
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: "0644"
|
|
||||||
|
|
||||||
- name: create extra conf
|
|
||||||
become: yes
|
|
||||||
file:
|
|
||||||
path: "/etc/pacman.d/extra.conf"
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
state: touch
|
|
||||||
mode: "0644"
|
|
||||||
|
|
||||||
- name: copy powertop service
|
|
||||||
become: yes
|
|
||||||
template:
|
|
||||||
src: "{{ platform }}/powertop.j2"
|
|
||||||
dest: "/etc/systemd/system/powertop.service"
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: "0644"
|
|
||||||
notify: restart powertop
|
|
||||||
when: platform == "laptop"
|
|
||||||
|
|
||||||
- import_tasks: systemd.yml
|
|
||||||
- import_tasks: openvpn.yml
|
|
||||||
- import_tasks: git.yml
|
|
||||||
- import_tasks: mpv.yml
|
|
||||||
- import_tasks: mpd.yml
|
|
||||||
- import_tasks: syncthing.yml
|
|
||||||
- import_tasks: timer.yml
|
|
||||||
|
|
@ -1,88 +0,0 @@
|
||||||
- name: set up sudoers configuration
|
|
||||||
become: yes
|
|
||||||
template:
|
|
||||||
src: "sudoers.j2"
|
|
||||||
dest: "/etc/sudoers.d/10-sonny"
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: "0644"
|
|
||||||
|
|
||||||
- name: copy systemd configuration files
|
|
||||||
template:
|
|
||||||
src: "{{ item.src }}"
|
|
||||||
dest: "{{ item.dest }}"
|
|
||||||
loop:
|
|
||||||
- {
|
|
||||||
src: "mpd/service.j2",
|
|
||||||
dest: "{{ xdg_config_dir }}/systemd/user/mpd.service",
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
src: "mpd/socket.j2",
|
|
||||||
dest: "{{ xdg_config_dir }}/systemd/user/mpd.socket",
|
|
||||||
}
|
|
||||||
|
|
||||||
- name: create mpd files
|
|
||||||
file:
|
|
||||||
path: "{{ item.path }}"
|
|
||||||
state: "{{ item.state }}"
|
|
||||||
loop:
|
|
||||||
- {
|
|
||||||
path: "{{ mpd_configuration_dir }}",
|
|
||||||
state: "directory",
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
path: "{{ mpd_configuration_dir }}/playlists",
|
|
||||||
state: "directory",
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
path: "{{ mpd_configuration_dir }}/log",
|
|
||||||
state: "touch",
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
path: "{{ mpd_configuration_dir }}/database",
|
|
||||||
state: "touch",
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
path: "{{ mpd_configuration_dir }}/sticker.sql",
|
|
||||||
state: "touch",
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
path: "{{ mpd_configuration_dir }}/state",
|
|
||||||
state: "touch",
|
|
||||||
}
|
|
||||||
|
|
||||||
- name: copy configuration file
|
|
||||||
template:
|
|
||||||
src: "mpd/mpd.j2"
|
|
||||||
dest: "{{ mpd_configuration_dir }}/mpd.conf"
|
|
||||||
|
|
||||||
- name: copy nfs connection scripts
|
|
||||||
template:
|
|
||||||
src: "{{ item.src }}"
|
|
||||||
dest: "{{ item.dest }}"
|
|
||||||
mode: "0755"
|
|
||||||
loop:
|
|
||||||
- {
|
|
||||||
src: "mpd/music_mount.j2",
|
|
||||||
dest: "{{ xdg_script_dir }}/music_mount",
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
src: "mpd/music_umount.j2",
|
|
||||||
dest: "{{ xdg_script_dir }}/music_umount",
|
|
||||||
}
|
|
||||||
|
|
||||||
- name: restart mpd service
|
|
||||||
systemd:
|
|
||||||
name: mpd.service
|
|
||||||
state: restarted
|
|
||||||
enabled: no
|
|
||||||
scope: user
|
|
||||||
when: platform == "desktop"
|
|
||||||
|
|
||||||
- name: enable mpd socket
|
|
||||||
systemd:
|
|
||||||
name: mpd.socket
|
|
||||||
state: started
|
|
||||||
enabled: yes
|
|
||||||
scope: user
|
|
||||||
when: platform == "desktop"
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
- name: create configuration directory
|
|
||||||
file:
|
|
||||||
path: "{{ ansible_env.HOME }}/.config/mpv"
|
|
||||||
state: directory
|
|
||||||
mode: "0700"
|
|
||||||
|
|
||||||
- name: copy configuration files
|
|
||||||
template:
|
|
||||||
src: "{{ item.src }}"
|
|
||||||
dest: "{{ item.dest }}"
|
|
||||||
mode: "0644"
|
|
||||||
loop:
|
|
||||||
- {
|
|
||||||
src: "mpv/input.j2",
|
|
||||||
dest: "{{ ansible_env.HOME }}/.config/mpv/input.conf",
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
src: "mpv/config.j2",
|
|
||||||
dest: "{{ ansible_env.HOME }}/.config/mpv/mpv.conf",
|
|
||||||
}
|
|
||||||
|
|
@ -1,82 +0,0 @@
|
||||||
- name: create configuration directories
|
|
||||||
become: yes
|
|
||||||
file:
|
|
||||||
path: "{{ item }}"
|
|
||||||
state: directory
|
|
||||||
owner: openvpn
|
|
||||||
group: openvpn
|
|
||||||
mode: "0750"
|
|
||||||
loop:
|
|
||||||
- "/etc/openvpn/client"
|
|
||||||
- "/etc/openvpn/client/zeus"
|
|
||||||
- "/etc/openvpn/server"
|
|
||||||
|
|
||||||
- name: copy configuration
|
|
||||||
become: yes
|
|
||||||
template:
|
|
||||||
src: "{{ platform }}/openvpn.j2"
|
|
||||||
dest: "/etc/openvpn/client/zeus.conf"
|
|
||||||
owner: openvpn
|
|
||||||
group: openvpn
|
|
||||||
mode: "0644"
|
|
||||||
|
|
||||||
- name: copy desktop credentials
|
|
||||||
become: yes
|
|
||||||
copy:
|
|
||||||
src: "{{ item.src }}"
|
|
||||||
dest: "{{ item.dest }}"
|
|
||||||
owner: openvpn
|
|
||||||
group: openvpn
|
|
||||||
mode: "0600"
|
|
||||||
loop:
|
|
||||||
- {
|
|
||||||
src: "{{ platform }}/openvpn/ca.crt",
|
|
||||||
dest: "/etc/openvpn/client/zeus/ca.crt",
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
src: "{{ platform }}/openvpn/desktop.crt",
|
|
||||||
dest: "/etc/openvpn/client/zeus/desktop.crt",
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
src: "{{ platform }}/openvpn/desktop.key",
|
|
||||||
dest: "/etc/openvpn/client/zeus/desktop.key",
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
src: "{{ platform }}/openvpn/ta.key",
|
|
||||||
dest: "/etc/openvpn/client/zeus/ta.key",
|
|
||||||
}
|
|
||||||
when: platform == "desktop"
|
|
||||||
|
|
||||||
- name: copy laptop credentials
|
|
||||||
become: yes
|
|
||||||
copy:
|
|
||||||
src: "{{ item.src }}"
|
|
||||||
dest: "{{ item.dest }}"
|
|
||||||
owner: openvpn
|
|
||||||
group: openvpn
|
|
||||||
mode: "0600"
|
|
||||||
loop:
|
|
||||||
- {
|
|
||||||
src: "{{ platform }}/openvpn/ca.crt",
|
|
||||||
dest: "/etc/openvpn/client/zeus/ca.crt",
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
src: "{{ platform }}/openvpn/laptop.crt",
|
|
||||||
dest: "/etc/openvpn/client/zeus/laptop.crt",
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
src: "{{ platform }}/openvpn/laptop.key",
|
|
||||||
dest: "/etc/openvpn/client/zeus/laptop.key",
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
src: "{{ platform }}/openvpn/ta.key",
|
|
||||||
dest: "/etc/openvpn/client/zeus/ta.key",
|
|
||||||
}
|
|
||||||
when: platform == "laptop"
|
|
||||||
|
|
||||||
- name: restart vpn
|
|
||||||
become: true
|
|
||||||
systemd:
|
|
||||||
name: openvpn-client@zeus
|
|
||||||
state: restarted
|
|
||||||
enabled: true
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
- name: create configuration dir
|
|
||||||
file:
|
|
||||||
path: "{{ xdg_config_dir }}/syncthing"
|
|
||||||
state: directory
|
|
||||||
|
|
||||||
- name: copy configuration file
|
|
||||||
template:
|
|
||||||
src: "{{ platform }}/syncthing.j2"
|
|
||||||
dest: "{{ xdg_config_dir }}/syncthing/config.xml"
|
|
||||||
mode: "0600"
|
|
||||||
notify: restart syncthing
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
- name: setup systemd user service folder
|
|
||||||
file:
|
|
||||||
path: "{{ xdg_config_dir }}/systemd/user"
|
|
||||||
state: directory
|
|
||||||
mode: "0755"
|
|
||||||
|
|
||||||
- name: add ssh-agent service
|
|
||||||
template:
|
|
||||||
src: "ssh-agent.j2"
|
|
||||||
dest: "{{ xdg_config_dir }}/systemd/user/ssh-agent.service"
|
|
||||||
mode: "0644"
|
|
||||||
notify: restart user ssh-agent
|
|
||||||
|
|
||||||
- name: copy tmux service
|
|
||||||
template:
|
|
||||||
src: "tmux.j2"
|
|
||||||
dest: "{{ xdg_config_dir }}/systemd/user/tmux.service"
|
|
||||||
mode: "0644"
|
|
||||||
|
|
||||||
- name: copy tmux startup script
|
|
||||||
copy:
|
|
||||||
src: "tmux_start"
|
|
||||||
dest: "{{ ansible_env.HOME }}/.local/bin/tmux_start"
|
|
||||||
mode: "0740"
|
|
||||||
force: false
|
|
||||||
|
|
@ -1,54 +0,0 @@
|
||||||
- name: copy timer files
|
|
||||||
become: yes
|
|
||||||
template:
|
|
||||||
src: "{{ item.src }}"
|
|
||||||
dest: "{{ item.dest }}"
|
|
||||||
owner: root
|
|
||||||
mode: "0644"
|
|
||||||
loop:
|
|
||||||
- {
|
|
||||||
src: "timer/daily_timer.j2",
|
|
||||||
dest: "/etc/systemd/system/daily.timer",
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
src: "timer/weekly_timer.j2",
|
|
||||||
dest: "/etc/systemd/system/weekly.timer",
|
|
||||||
}
|
|
||||||
notify:
|
|
||||||
- enable daily timer
|
|
||||||
- enable weekly timer
|
|
||||||
|
|
||||||
- name: copy target files
|
|
||||||
become: yes
|
|
||||||
template:
|
|
||||||
src: "{{ item.src }}"
|
|
||||||
dest: "{{ item.dest }}"
|
|
||||||
owner: root
|
|
||||||
mode: "0644"
|
|
||||||
loop:
|
|
||||||
- {
|
|
||||||
src: "timer/daily_target.j2",
|
|
||||||
dest: "/etc/systemd/system/daily.target",
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
src: "timer/weekly_target.j2",
|
|
||||||
dest: "/etc/systemd/system/weekly.target",
|
|
||||||
}
|
|
||||||
|
|
||||||
- name: create target directories
|
|
||||||
become: yes
|
|
||||||
file:
|
|
||||||
path: "{{ item }}"
|
|
||||||
state: directory
|
|
||||||
owner: root
|
|
||||||
mode: "0755"
|
|
||||||
loop:
|
|
||||||
- "/etc/systemd/system/daily.target.wants"
|
|
||||||
- "/etc/systemd/system/weekly.target.wants"
|
|
||||||
|
|
||||||
- name: add reflector to weekly timer
|
|
||||||
become: yes
|
|
||||||
file:
|
|
||||||
src: "/usr/lib/systemd/system/reflector.service"
|
|
||||||
dest: "/etc/systemd/system/weekly.target.wants/reflector.service"
|
|
||||||
state: link
|
|
||||||
26
tasks/git.yml
Normal file
26
tasks/git.yml
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
- name: copy git configuration
|
||||||
|
template:
|
||||||
|
src: 'templates/gitconfig.j2'
|
||||||
|
dest: '{{ ansible_env.HOME }}/.gitconfig'
|
||||||
|
|
||||||
|
- name: copy keys
|
||||||
|
copy:
|
||||||
|
src: '{{ item.src }}'
|
||||||
|
dest: '{{ item.dest }}'
|
||||||
|
loop:
|
||||||
|
- { src: 'files/gpg_key', dest: '{{ ansible_env.HOME }}/gpg.key' }
|
||||||
|
- { src: 'files/gpg_pub', dest: '{{ ansible_env.HOME }}/gpg.pub' }
|
||||||
|
|
||||||
|
- name: import secret key
|
||||||
|
command: 'gpg --passphrase {{ gpg_passphrase }} --import ~/gpg.key'
|
||||||
|
|
||||||
|
- name: import public key
|
||||||
|
command: 'gpg --import ~/gpg.pub'
|
||||||
|
|
||||||
|
- name: remove temp keys
|
||||||
|
file:
|
||||||
|
path: '{{ item }}'
|
||||||
|
state: absent
|
||||||
|
loop:
|
||||||
|
- '{{ ansible_env.HOME }}/gpg.key'
|
||||||
|
- '{{ ansible_env.HOME }}/gpg.pub'
|
||||||
64
tasks/mpd.yml
Normal file
64
tasks/mpd.yml
Normal file
|
|
@ -0,0 +1,64 @@
|
||||||
|
- name: set up sudoers configuration
|
||||||
|
become: yes
|
||||||
|
template:
|
||||||
|
src: 'templates/sudoers.j2'
|
||||||
|
dest: '/etc/sudoers.d/10-sonny'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0644'
|
||||||
|
|
||||||
|
- name: copy systemd configuration files
|
||||||
|
template:
|
||||||
|
src: '{{ item.src }}'
|
||||||
|
dest: '{{ item.dest }}'
|
||||||
|
loop:
|
||||||
|
- {
|
||||||
|
src: 'templates/mpd/service.j2',
|
||||||
|
dest: '{{ xdg_config_dir }}/systemd/user/mpd.service',
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
src: 'templates/mpd/socket.j2',
|
||||||
|
dest: '{{ xdg_config_dir }}/systemd/user/mpd.socket',
|
||||||
|
}
|
||||||
|
|
||||||
|
- name: create mpd files
|
||||||
|
file:
|
||||||
|
path: '{{ item.path }}'
|
||||||
|
state: '{{ item.state }}'
|
||||||
|
loop:
|
||||||
|
- { path: '{{ mpd_configuration_dir }}', state: 'directory' }
|
||||||
|
- { path: '{{ mpd_configuration_dir }}/playlists', state: 'directory' }
|
||||||
|
- { path: '{{ mpd_configuration_dir }}/log', state: 'touch' }
|
||||||
|
- { path: '{{ mpd_configuration_dir }}/database', state: 'touch' }
|
||||||
|
- { path: '{{ mpd_configuration_dir }}/sticker.sql', state: 'touch' }
|
||||||
|
- { path: '{{ mpd_configuration_dir }}/state', state: 'touch' }
|
||||||
|
|
||||||
|
- name: copy configuration file
|
||||||
|
template:
|
||||||
|
src: 'templates/mpd/mpd.j2'
|
||||||
|
dest: '{{ mpd_configuration_dir }}/mpd.conf'
|
||||||
|
|
||||||
|
- name: copy nfs connection scripts
|
||||||
|
template:
|
||||||
|
src: '{{ item.src }}'
|
||||||
|
dest: '{{ item.dest }}'
|
||||||
|
mode: '0755'
|
||||||
|
loop:
|
||||||
|
- { src: 'templates/mpd/music_mount.j2', dest: '{{ xdg_script_dir }}/music_mount' }
|
||||||
|
- { src: 'templates/mpd/music_umount.j2', dest: '{{ xdg_script_dir }}/music_umount' }
|
||||||
|
|
||||||
|
- name: restart mpd service
|
||||||
|
systemd:
|
||||||
|
name: mpd.service
|
||||||
|
state: restarted
|
||||||
|
enabled: no
|
||||||
|
scope: user
|
||||||
|
when: platform == "desktop"
|
||||||
|
|
||||||
|
- name: enable mpd socket
|
||||||
|
systemd:
|
||||||
|
name: mpd.socket
|
||||||
|
state: started
|
||||||
|
enabled: yes
|
||||||
|
scope: user
|
||||||
|
when: platform == "desktop"
|
||||||
20
tasks/mpv.yml
Normal file
20
tasks/mpv.yml
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
- name: create configuration directory
|
||||||
|
file:
|
||||||
|
path: '{{ ansible_env.HOME }}/.config/mpv'
|
||||||
|
state: directory
|
||||||
|
mode: '0700'
|
||||||
|
|
||||||
|
- name: copy configuration files
|
||||||
|
template:
|
||||||
|
src: '{{ item.src }}'
|
||||||
|
dest: '{{ item.dest }}'
|
||||||
|
mode: '0644'
|
||||||
|
loop:
|
||||||
|
- {
|
||||||
|
src: 'templates/mpv/input.j2',
|
||||||
|
dest: '{{ ansible_env.HOME }}/.config/mpv/input.conf',
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
src: 'templates/mpv/config.j2',
|
||||||
|
dest: '{{ ansible_env.HOME }}/.config/mpv/mpv.conf',
|
||||||
|
}
|
||||||
|
|
@ -1,22 +1,22 @@
|
||||||
- name: setup desktop systemd networkd
|
- name: setup desktop systemd networkd
|
||||||
become: yes
|
become: yes
|
||||||
template:
|
template:
|
||||||
src: "desktop/network.j2"
|
src: 'templates/desktop/network.j2'
|
||||||
dest: "/etc/systemd/network/20-wired.network"
|
dest: '/etc/systemd/network/20-wired.network'
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: "0644"
|
mode: '0644'
|
||||||
notify: restart systemd-networkd
|
notify: restart systemd-networkd
|
||||||
when: platform == "desktop"
|
when: platform == "desktop"
|
||||||
|
|
||||||
- name: setup laptop systemd networkd
|
- name: setup laptop systemd networkd
|
||||||
become: yes
|
become: yes
|
||||||
template:
|
template:
|
||||||
src: "laptop/network.j2"
|
src: 'templates/laptop/network.j2'
|
||||||
dest: "/etc/systemd/network/20-wireless.network"
|
dest: '/etc/systemd/network/20-wireless.network'
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: "0644"
|
mode: '0644'
|
||||||
notify: restart systemd-networkd
|
notify: restart systemd-networkd
|
||||||
when: platform == "laptop"
|
when: platform == "laptop"
|
||||||
|
|
||||||
|
|
@ -38,9 +38,9 @@
|
||||||
- name: copy firewall template
|
- name: copy firewall template
|
||||||
become: yes
|
become: yes
|
||||||
template:
|
template:
|
||||||
src: "{{ platform }}/nftables.j2"
|
src: 'templates/{{ platform }}/nftables.j2'
|
||||||
dest: "/etc/nftables.conf"
|
dest: '/etc/nftables.conf'
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: "0600"
|
mode: '0600'
|
||||||
notify: restart nftables
|
notify: restart nftables
|
||||||
82
tasks/openvpn.yml
Normal file
82
tasks/openvpn.yml
Normal file
|
|
@ -0,0 +1,82 @@
|
||||||
|
- name: create configuration directories
|
||||||
|
become: yes
|
||||||
|
file:
|
||||||
|
path: '{{ item }}'
|
||||||
|
state: directory
|
||||||
|
owner: openvpn
|
||||||
|
group: openvpn
|
||||||
|
mode: '0750'
|
||||||
|
loop:
|
||||||
|
- '/etc/openvpn/client'
|
||||||
|
- '/etc/openvpn/client/zeus'
|
||||||
|
- '/etc/openvpn/server'
|
||||||
|
|
||||||
|
- name: copy configuration
|
||||||
|
become: yes
|
||||||
|
template:
|
||||||
|
src: 'templates/{{ platform }}/openvpn.j2'
|
||||||
|
dest: '/etc/openvpn/client/zeus.conf'
|
||||||
|
owner: openvpn
|
||||||
|
group: openvpn
|
||||||
|
mode: '0644'
|
||||||
|
|
||||||
|
- name: copy desktop credentials
|
||||||
|
become: yes
|
||||||
|
copy:
|
||||||
|
src: '{{ item.src }}'
|
||||||
|
dest: '{{ item.dest }}'
|
||||||
|
owner: openvpn
|
||||||
|
group: openvpn
|
||||||
|
mode: '0600'
|
||||||
|
loop:
|
||||||
|
- {
|
||||||
|
src: 'files/{{ platform }}/openvpn/ca.crt',
|
||||||
|
dest: '/etc/openvpn/client/zeus/ca.crt',
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
src: 'files/{{ platform }}/openvpn/desktop.crt',
|
||||||
|
dest: '/etc/openvpn/client/zeus/desktop.crt',
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
src: 'files/{{ platform }}/openvpn/desktop.key',
|
||||||
|
dest: '/etc/openvpn/client/zeus/desktop.key',
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
src: 'files/{{ platform }}/openvpn/ta.key',
|
||||||
|
dest: '/etc/openvpn/client/zeus/ta.key',
|
||||||
|
}
|
||||||
|
when: platform == "desktop"
|
||||||
|
|
||||||
|
- name: copy laptop credentials
|
||||||
|
become: yes
|
||||||
|
copy:
|
||||||
|
src: '{{ item.src }}'
|
||||||
|
dest: '{{ item.dest }}'
|
||||||
|
owner: openvpn
|
||||||
|
group: openvpn
|
||||||
|
mode: '0600'
|
||||||
|
loop:
|
||||||
|
- {
|
||||||
|
src: 'files/{{ platform }}/openvpn/ca.crt',
|
||||||
|
dest: '/etc/openvpn/client/zeus/ca.crt',
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
src: 'files/{{ platform }}/openvpn/laptop.crt',
|
||||||
|
dest: '/etc/openvpn/client/zeus/laptop.crt',
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
src: 'files/{{ platform }}/openvpn/laptop.key',
|
||||||
|
dest: '/etc/openvpn/client/zeus/laptop.key',
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
src: 'files/{{ platform }}/openvpn/ta.key',
|
||||||
|
dest: '/etc/openvpn/client/zeus/ta.key',
|
||||||
|
}
|
||||||
|
when: platform == "laptop"
|
||||||
|
|
||||||
|
- name: restart vpn
|
||||||
|
become: true
|
||||||
|
systemd:
|
||||||
|
name: openvpn-client@zeus
|
||||||
|
state: restarted
|
||||||
|
enabled: true
|
||||||
|
|
@ -5,18 +5,18 @@
|
||||||
|
|
||||||
- name: set platform (desktop)
|
- name: set platform (desktop)
|
||||||
set_fact:
|
set_fact:
|
||||||
platform: "desktop"
|
platform: 'desktop'
|
||||||
when: is_laptop.rc == 1
|
when: is_laptop.rc == 1
|
||||||
|
|
||||||
- name: set platform (laptop)
|
- name: set platform (laptop)
|
||||||
set_fact:
|
set_fact:
|
||||||
platform: "laptop"
|
platform: 'laptop'
|
||||||
when: is_laptop.rc == 0
|
when: is_laptop.rc == 0
|
||||||
|
|
||||||
- name: load desktop specific vars
|
- name: load desktop specific vars
|
||||||
include_vars: desktop.yml
|
include_vars: 'vars/desktop.yml'
|
||||||
when: platform == "desktop"
|
when: platform == "desktop"
|
||||||
|
|
||||||
- name: load laptop specific vars
|
- name: load laptop specific vars
|
||||||
include_vars: laptop.yml
|
include_vars: 'vars/laptop.yml'
|
||||||
when: platform == "laptop"
|
when: platform == "laptop"
|
||||||
45
tasks/setup.yml
Normal file
45
tasks/setup.yml
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
- name: copy reflector configuration
|
||||||
|
become: yes
|
||||||
|
template:
|
||||||
|
src: 'templates/reflector.j2'
|
||||||
|
dest: '/etc/xdg/reflector/reflector.conf'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0600'
|
||||||
|
|
||||||
|
# started by weekly timer
|
||||||
|
- name: disable reflector
|
||||||
|
become: true
|
||||||
|
systemd:
|
||||||
|
name: reflector
|
||||||
|
state: stopped
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
- name: copy pacman configuration
|
||||||
|
become: yes
|
||||||
|
template:
|
||||||
|
src: 'templates/pacman.j2'
|
||||||
|
dest: '/etc/pacman.conf'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0644'
|
||||||
|
|
||||||
|
- name: create extra conf
|
||||||
|
become: yes
|
||||||
|
file:
|
||||||
|
path: '/etc/pacman.d/extra.conf'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
state: touch
|
||||||
|
mode: '0644'
|
||||||
|
|
||||||
|
- name: copy powertop service
|
||||||
|
become: yes
|
||||||
|
template:
|
||||||
|
src: 'templates/{{ platform }}/powertop.j2'
|
||||||
|
dest: '/etc/systemd/system/powertop.service'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0644'
|
||||||
|
notify: restart powertop
|
||||||
|
when: platform == "laptop"
|
||||||
11
tasks/syncthing.yml
Normal file
11
tasks/syncthing.yml
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
- name: create configuration dir
|
||||||
|
file:
|
||||||
|
path: '{{ xdg_config_dir }}/syncthing'
|
||||||
|
state: directory
|
||||||
|
|
||||||
|
- name: copy configuration file
|
||||||
|
template:
|
||||||
|
src: 'templates/{{ platform }}/syncthing.j2'
|
||||||
|
dest: '{{ xdg_config_dir }}/syncthing/config.xml'
|
||||||
|
mode: '0600'
|
||||||
|
notify: restart syncthing
|
||||||
25
tasks/systemd.yml
Normal file
25
tasks/systemd.yml
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
- name: setup systemd user service folder
|
||||||
|
file:
|
||||||
|
path: '{{ xdg_config_dir }}/systemd/user'
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: add ssh-agent service
|
||||||
|
template:
|
||||||
|
src: 'templates/ssh-agent.j2'
|
||||||
|
dest: '{{ xdg_config_dir }}/systemd/user/ssh-agent.service'
|
||||||
|
mode: '0644'
|
||||||
|
notify: restart user ssh-agent
|
||||||
|
|
||||||
|
- name: copy tmux service
|
||||||
|
template:
|
||||||
|
src: 'templates/tmux.j2'
|
||||||
|
dest: '{{ xdg_config_dir }}/systemd/user/tmux.service'
|
||||||
|
mode: '0644'
|
||||||
|
|
||||||
|
- name: copy tmux startup script
|
||||||
|
copy:
|
||||||
|
src: 'files/tmux_start'
|
||||||
|
dest: '{{ ansible_env.HOME }}/.local/bin/tmux_start'
|
||||||
|
mode: '0740'
|
||||||
|
force: false
|
||||||
45
tasks/timer.yml
Normal file
45
tasks/timer.yml
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
- name: copy timer files
|
||||||
|
become: yes
|
||||||
|
template:
|
||||||
|
src: '{{ item.src }}'
|
||||||
|
dest: '{{ item.dest }}'
|
||||||
|
owner: root
|
||||||
|
mode: '0644'
|
||||||
|
loop:
|
||||||
|
- { src: 'templates/timer/daily_timer.j2', dest: '/etc/systemd/system/daily.timer' }
|
||||||
|
- { src: 'templates/timer/weekly_timer.j2', dest: '/etc/systemd/system/weekly.timer' }
|
||||||
|
notify:
|
||||||
|
- enable daily timer
|
||||||
|
- enable weekly timer
|
||||||
|
|
||||||
|
- name: copy target files
|
||||||
|
become: yes
|
||||||
|
template:
|
||||||
|
src: '{{ item.src }}'
|
||||||
|
dest: '{{ item.dest }}'
|
||||||
|
owner: root
|
||||||
|
mode: '0644'
|
||||||
|
loop:
|
||||||
|
- { src: 'templates/timer/daily_target.j2', dest: '/etc/systemd/system/daily.target' }
|
||||||
|
- {
|
||||||
|
src: 'templates/timer/weekly_target.j2',
|
||||||
|
dest: '/etc/systemd/system/weekly.target',
|
||||||
|
}
|
||||||
|
|
||||||
|
- name: create target directories
|
||||||
|
become: yes
|
||||||
|
file:
|
||||||
|
path: '{{ item }}'
|
||||||
|
state: directory
|
||||||
|
owner: root
|
||||||
|
mode: '0755'
|
||||||
|
loop:
|
||||||
|
- '/etc/systemd/system/daily.target.wants'
|
||||||
|
- '/etc/systemd/system/weekly.target.wants'
|
||||||
|
|
||||||
|
- name: add reflector to weekly timer
|
||||||
|
become: yes
|
||||||
|
file:
|
||||||
|
src: '/usr/lib/systemd/system/reflector.service'
|
||||||
|
dest: '/etc/systemd/system/weekly.target.wants/reflector.service'
|
||||||
|
state: link
|
||||||
8
vars/gpg.yml
Normal file
8
vars/gpg.yml
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
gpg_pub_key: '82C21552D732C65C1A4FB340037103F03CA5CBA1'
|
||||||
|
gpg_passphrase: !vault |
|
||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
61383265343062663836623033343538333562636433383735383862306465316439376333373563
|
||||||
|
6131336136653533323561633434633961393061623233640a366430396532326465326530356136
|
||||||
|
36616636363134386333616137656333353439633832633731373834336239393337316366626462
|
||||||
|
6164343331613663620a303363353064376630633939363831373339383961626137376361323438
|
||||||
|
3463
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
xdg_config_dir: "{{ ansible_env.HOME }}/.config"
|
xdg_config_dir: '{{ ansible_env.HOME }}/.config'
|
||||||
xdg_script_dir: "{{ ansible_env.HOME }}/.local/bin"
|
xdg_script_dir: '{{ ansible_env.HOME }}/.local/bin'
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
- firefox
|
- firefox
|
||||||
11
vars/mpd.yml
Normal file
11
vars/mpd.yml
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
mpd_listen_address: '127.0.0.1'
|
||||||
|
mpd_listen_port: '6600'
|
||||||
|
|
||||||
|
mpd_database_address: '10.8.0.1'
|
||||||
|
mpd_database_port: '21000'
|
||||||
|
|
||||||
|
mpd_configuration_dir: '{{ ansible_env.HOME }}/.config/mpd'
|
||||||
|
mpd_music_dir: '{{ ansible_env.HOME }}/music'
|
||||||
|
mpd_playlist_dir: '{{ mpd_configuration_dir }}/playlists'
|
||||||
|
mpd_state_path: '{{ mpd_configuration_dir }}/state'
|
||||||
|
mpd_sticker_path: '{{ mpd_configuration_dir }}/sticker.sql'
|
||||||
5
vars/vpn.yml
Normal file
5
vars/vpn.yml
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
vpn_ip: '178.85.119.159'
|
||||||
|
vpn_port: '7531'
|
||||||
|
vpn_interface: 'tun0'
|
||||||
|
vpn_protocol: 'udp'
|
||||||
|
vpn_verbosity: '1'
|
||||||
Loading…
Add table
Add a link
Reference in a new issue