Fix linting and add backup cron job (#25)
parent
d49819acec
commit
5cd48b220f
@ -0,0 +1,3 @@
|
||||
skip_list:
|
||||
- '403' # allow for latest packages
|
||||
- name[casing]
|
||||
@ -1,6 +1,8 @@
|
||||
- hosts: localhost
|
||||
---
|
||||
- name: Setup linode instance.
|
||||
hosts: localhost
|
||||
become: true
|
||||
roles:
|
||||
- role: roles/setup_linode
|
||||
vars:
|
||||
state: present
|
||||
- role: roles/setup_linode
|
||||
vars:
|
||||
state: present
|
||||
|
||||
@ -1,48 +1,48 @@
|
||||
---
|
||||
- hosts: all
|
||||
- name: Verify HomeLab has been correctly set up.
|
||||
hosts: all
|
||||
become: true
|
||||
pre_tasks:
|
||||
- name: Include vault variables.
|
||||
include_vars: ../{{vault_file}}
|
||||
tags:
|
||||
- always
|
||||
- name: Include vault variables.
|
||||
ansible.builtin.include_vars: ../{{ vault_file }}
|
||||
tags:
|
||||
- always
|
||||
tasks:
|
||||
- name: Docker Compose Files Exist
|
||||
command: stat {{directories.docker_compose_directory}}/{{ item.name }}/docker-compose.yml
|
||||
with_items: '{{services}}'
|
||||
changed_when: false
|
||||
register: docker_compose_stat
|
||||
- name: Docker Compose Files Exist
|
||||
ansible.builtin.command: stat {{ directories.docker_compose_directory }}/{{ item.name }}/docker-compose.yml
|
||||
with_items: '{{ services }}'
|
||||
changed_when: false
|
||||
register: docker_compose_stat
|
||||
|
||||
- name: Assert all Docker Compose files were created
|
||||
assert:
|
||||
that: item.rc == 0
|
||||
with_items: '{{docker_compose_stat.results}}'
|
||||
- name: Assert all Docker Compose files were created
|
||||
ansible.builtin.assert:
|
||||
that: item.rc == 0
|
||||
with_items: '{{ docker_compose_stat.results }}'
|
||||
|
||||
- name: Populate service facts
|
||||
service_facts: {}
|
||||
- name: Assert docker is installed and started
|
||||
assert:
|
||||
that:
|
||||
- ansible_facts.services.docker.state == "running"
|
||||
- ansible_facts.services['docker.service'].status == "enabled"
|
||||
- name: Inspect all images
|
||||
docker_image_info: {}
|
||||
register: image_details
|
||||
- name: Assert desired images exist
|
||||
assert:
|
||||
that: {{item in image_details.images | map(attribute='RepoTags') | flatten: !!null ''}: !!null ''}
|
||||
with_items: '{{desired_docker_images}}'
|
||||
- name: Populate service facts
|
||||
ansible.builtin.service_facts: {}
|
||||
|
||||
- name: Fetch Sudoers Files
|
||||
command: stat /etc/sudoers.d/{{item.name}}
|
||||
changed_when: false
|
||||
register: sudoers_stat
|
||||
with_items: '{{users}}'
|
||||
when: item.passwordless_sudo == true
|
||||
|
||||
- name: Assert sudoers files are created
|
||||
assert:
|
||||
that: item.rc == 0
|
||||
with_items: '{{sudoers_stat.results}}'
|
||||
- name: Assert docker is installed and started
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- ansible_facts.services.docker.state == "running"
|
||||
- ansible_facts.services['docker.service'].status == "enabled"
|
||||
- name: Inspect all images
|
||||
docker_image_info: {}
|
||||
register: image_details
|
||||
- name: Assert desired images exist
|
||||
ansible.builtin.assert:
|
||||
that: "{{ item in image_details.images | map(attribute='RepoTags') | flatten }}"
|
||||
with_items: '{{ desired_docker_images }}'
|
||||
|
||||
- name: Fetch Sudoers Files
|
||||
ansible.builtin.command: stat /etc/sudoers.d/{{ item.name }}
|
||||
changed_when: false
|
||||
register: sudoers_stat
|
||||
with_items: '{{ users }}'
|
||||
when: item.passwordless_sudo
|
||||
|
||||
- name: Assert sudoers files are created
|
||||
ansible.builtin.assert:
|
||||
that: item.rc == 0
|
||||
with_items: '{{ sudoers_stat.results }}'
|
||||
|
||||
@ -1,10 +1,12 @@
|
||||
galaxy_info:
|
||||
author: Cian Hatton
|
||||
namespace: chatton
|
||||
description: Bootstrap ansible
|
||||
company: your company (optional)
|
||||
description: Setup Docker
|
||||
license: MIT
|
||||
min_ansible_version: 2.1
|
||||
min_ansible_version: "2.1"
|
||||
galaxy_tags: []
|
||||
|
||||
platforms:
|
||||
- name: Debian
|
||||
versions:
|
||||
- all
|
||||
dependencies: []
|
||||
|
||||
@ -1,10 +1,9 @@
|
||||
# handlers file for setup_hosted_services
|
||||
- name: restart-dashy
|
||||
command: docker restart dashy
|
||||
ignore_errors: true
|
||||
ansible.builtin.command: docker restart dashy
|
||||
|
||||
- name: restart-olivetin
|
||||
command: docker restart olivetin
|
||||
ansible.builtin.command: docker restart olivetin
|
||||
|
||||
- name: restart-docker-volume-backup
|
||||
command: docker restart docker-volume-backup
|
||||
ansible.builtin.command: docker restart docker-volume-backup
|
||||
|
||||
@ -1,7 +1,12 @@
|
||||
$ANSIBLE_VAULT;1.1;AES256 36356161663039666634393933383830653035633438343866643730303434353632383031303965
|
||||
3465343332353437616663643662343262373333366162300a373662386533363234636234633339 35383439373430656130353938653531636563663066646265643838323230356231333836326262
|
||||
6439626538643837390a383039373366626637333738386332356361306131323133383534323462 32376564376363663666383639313064316365353037356633363035373632313561643030643933
|
||||
34663533313231636162306465656433663634643038343938396462643261656238626432633136 39356562353463353034373534386537313634326534623830616362336638396337386631663538
|
||||
30663236653532316461306636333536373836626537363430613961346137626261333238366234 30633438653936316539326436393634366236616664383835396434373966333166366265636661
|
||||
39666335653265323565313831303264336331363339333532353939653330383362363965353032 383434386133323961373833303262336439
|
||||
...
|
||||
$ANSIBLE_VAULT;1.1;AES256
|
||||
38343033383061343739363362626366376630376337376639376235316665363736376362633830
|
||||
6638383135303063363866623262303736393337386364630a353533323537376437343033666334
|
||||
32353832353466343832643238313834616662333736363738353565623063316438393635343631
|
||||
6662366132396337320a326335353333306262666561353037356539633432376439666133386463
|
||||
30326230316634346431346266333030303435313065616665656362663164313638313639313633
|
||||
63343538653230653330383336386138643636333361326139346336646665366530343537663331
|
||||
61303639313335343162613838303034616362303935653862666166656634613562376330306165
|
||||
32373832666438623638616363363931636664633337396336653237356234616438623261353134
|
||||
62373463313235323233343734363561353237613439663534393537333964323932373837356564
|
||||
32383536613332323532633534306632373762666236366664383636323264363433396437666437
|
||||
323637336362613139633237316237666365
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
---
|
||||
samba_group: smbgroup
|
||||
samba_user: smbuser
|
||||
users:
|
||||
- name: cianhatton
|
||||
- name: cianhatton
|
||||
shares:
|
||||
- /share
|
||||
- /share/public_files
|
||||
- /share/private_files
|
||||
- /share/cian_files
|
||||
- /share
|
||||
- /share/public_files
|
||||
- /share/private_files
|
||||
- /share/cian_files
|
||||
|
||||
@ -1,53 +1,57 @@
|
||||
- name: Install samba packages using apt
|
||||
apt:
|
||||
---
|
||||
- name: Install samba packages using apt.
|
||||
ansible.builtin.apt:
|
||||
name:
|
||||
- samba
|
||||
- samba
|
||||
state: present
|
||||
update_cache: true
|
||||
|
||||
- name: Ensure samba group exists
|
||||
- name: Ensure samba group exists.
|
||||
ansible.builtin.group:
|
||||
name: '{{samba_group}}'
|
||||
name: '{{ samba_group }}'
|
||||
state: present
|
||||
system: true
|
||||
notify:
|
||||
- reload-samba
|
||||
- reload-samba
|
||||
|
||||
- name: Ensure samba user
|
||||
- name: Ensure samba user.
|
||||
ansible.builtin.user:
|
||||
name: '{{samba_user}}'
|
||||
name: '{{ samba_user }}'
|
||||
comment: Samba user
|
||||
group: '{{samba_group}}'
|
||||
group: '{{ samba_group }}'
|
||||
shell: /bin/false
|
||||
create_home: false
|
||||
notify:
|
||||
- reload-samba
|
||||
- reload-samba
|
||||
|
||||
- name: Add the User(s) to Samba group
|
||||
user:
|
||||
- name: Add the User(s) to Samba group.
|
||||
ansible.builtin.user:
|
||||
name: '{{ item.name }}'
|
||||
groups: '{{ samba_group }}'
|
||||
append: true
|
||||
with_items: '{{users}}'
|
||||
with_items: '{{ users }}'
|
||||
|
||||
- name: Ensure Share directories
|
||||
- name: Ensure Share directories.
|
||||
ansible.builtin.file:
|
||||
path: '{{item}}'
|
||||
path: '{{ item }}'
|
||||
recurse: true
|
||||
state: directory
|
||||
owner: '{{samba_user}}'
|
||||
group: '{{samba_group}}'
|
||||
owner: '{{ samba_user }}'
|
||||
group: '{{ samba_group }}'
|
||||
mode: u+rw,g+rw
|
||||
with_items: '{{shares}}'
|
||||
with_items: '{{ shares }}'
|
||||
notify:
|
||||
- reload-samba
|
||||
- reload-samba
|
||||
|
||||
- name: Copy smb conf files
|
||||
copy:
|
||||
src: '{{item}}'
|
||||
dest: /etc/samba/{{item}}
|
||||
- name: Copy smb conf files.
|
||||
ansible.builtin.copy:
|
||||
src: '{{ item }}'
|
||||
dest: "/etc/samba/{{ item }}"
|
||||
mode: 0644
|
||||
owner: "{{ samba_user }}"
|
||||
group: "{{ samba_group }}"
|
||||
with_items:
|
||||
- smb.conf
|
||||
- shares.conf
|
||||
- smb.conf
|
||||
- shares.conf
|
||||
notify:
|
||||
- reload-samba
|
||||
- reload-samba
|
||||
|
||||
@ -1,39 +1,42 @@
|
||||
# https://stackoverflow.com/questions/37333305/ansible-create-a-user-with-sudo-privileges
|
||||
- name: Install Sudo
|
||||
apt:
|
||||
- name: Install Sudo.
|
||||
ansible.builtin.apt:
|
||||
pkg:
|
||||
- sudo
|
||||
- sudo
|
||||
state: latest
|
||||
update_cache: true
|
||||
|
||||
- name: Make sure we have a groups
|
||||
group:
|
||||
- name: Make sure we have a groups.
|
||||
ansible.builtin.group:
|
||||
name: '{{ item.group }}'
|
||||
state: present
|
||||
with_items: '{{ users }}'
|
||||
|
||||
- name: Add Users
|
||||
- name: Add Users.
|
||||
ansible.builtin.user:
|
||||
name: '{{ item.name }}'
|
||||
comment: '{{ item.name }} user'
|
||||
group: '{{ item.group }}'
|
||||
with_items: '{{ users }}'
|
||||
|
||||
- name: Add sudoers
|
||||
template:
|
||||
- name: Add sudoers.
|
||||
ansible.builtin.template:
|
||||
src: sudoers.j2
|
||||
dest: /etc/sudoers.d/{{item.name}}
|
||||
dest: /etc/sudoers.d/{{ item.name }}
|
||||
mode: 0440
|
||||
with_items: '{{ users }}'
|
||||
when: item.passwordless_sudo == true
|
||||
when: item.passwordless_sudo
|
||||
|
||||
- name: Set authorized key
|
||||
- name: Set authorized key.
|
||||
authorized_key:
|
||||
user: '{{ homelab_user }}'
|
||||
state: present
|
||||
key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
|
||||
|
||||
- name: Copy Bashrc
|
||||
copy:
|
||||
- name: Copy Bashrc.
|
||||
ansible.builtin.copy:
|
||||
src: bash_rc
|
||||
dest: "/home/{{ homelab_user }}/.bash_rc"
|
||||
group: "{{ homelab_user }}"
|
||||
owner: "{{ homelab_user }}"
|
||||
mode: 0644
|
||||
|
||||
Loading…
Reference in New Issue