102 lines
3.1 KiB
YAML
102 lines
3.1 KiB
YAML
---
|
|
###########################################################################
|
|
#
|
|
# This is a playbook to deploy a default configurations to a LAN host.
|
|
#
|
|
###########################################################################
|
|
#
|
|
# Playbook to perform setup of a network host. The host will need to have
|
|
# first been setup for ansible management. There will also need to be a fully
|
|
# detailed inventory file for the host.
|
|
#
|
|
########################################
|
|
#
|
|
# This playbook can be run using the following command line;
|
|
#
|
|
# ansible-playbook -l <inventory host> -i <inventory file> setup-host.yml
|
|
#
|
|
# ie,
|
|
# ansible-playbook -l tnode1 -i inventory/prod.yml setup-host.yml
|
|
#
|
|
###########################################################################
|
|
|
|
- hosts: all
|
|
gather_facts: true
|
|
user: root
|
|
|
|
vars:
|
|
username: "{{ hostvars[inventory_hostname].user }}"
|
|
sudoers_user: "{{ hostvars[inventory_hostname].user }}"
|
|
userpw: "{{ hostvars[inventory_hostname].pw }}"
|
|
homedir: "{{ hostvars[inventory_hostname].home }}"
|
|
host_config: "{{ hostvars[inventory_hostname].host_config }}"
|
|
guest_ip: "{{ hostvars[inventory_hostname].ansible_host }}"
|
|
|
|
pre_tasks:
|
|
|
|
- name:
|
|
debug:
|
|
msg: "setup-host.yml playbook"
|
|
|
|
roles:
|
|
|
|
#######################################################
|
|
# roles applied to all guests
|
|
- role: update_cache
|
|
- role: upgrade_pkgs
|
|
- role: pfetch
|
|
|
|
#######################################################
|
|
- role: base_pkgs
|
|
when: '"base_pkgs" in host_config'
|
|
|
|
#######################################################
|
|
- role: create_user
|
|
when: '"create_user" in host_config'
|
|
- role: sudoers
|
|
when: '"create_user" in host_config'
|
|
- role: vim_setup
|
|
when: '"create_user" in host_config'
|
|
|
|
#######################################################
|
|
- role: incus
|
|
when: '"incus" in host_config'
|
|
|
|
#######################################################
|
|
- role: du_backups
|
|
when: '"du_backups" in host_config'
|
|
|
|
#######################################################
|
|
- role: monitorix
|
|
vars:
|
|
# set variable to same value as in monitorix.yml playbook
|
|
monitorix_pkg: "monitorix_3.15.0-izzy1_all.deb"
|
|
when: '"monitorix" in host_config'
|
|
|
|
#######################################################
|
|
- role: nagios_agent
|
|
vars:
|
|
agent_ip: "{{ guest_ip }}"
|
|
when: '"nagios_agent" in host_config'
|
|
|
|
#######################################################
|
|
- role: docker
|
|
vars:
|
|
# set variable to same value as in docker.yml playbook
|
|
docker_compose_version: "v2.14.2"
|
|
when: '"docker" in host_config'
|
|
|
|
#######################################################
|
|
- role: k3s
|
|
vars:
|
|
# Calculate the number of target hosts
|
|
numhosts: "{{ ansible_play_hosts | length }}"
|
|
# first inventory host will be master node
|
|
master_host: "{{ ansible_play_hosts[0] }}"
|
|
master_ip: "{{ hostvars[master_host].ansible_host }}"
|
|
# change k3s_user to create a non-root admin user
|
|
k3s_user: root
|
|
when: '"k3s" in host_config'
|
|
|
|
# EOF
|