feat(roles/salt): added salt role
This commit is contained in:
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
salt_role: minion
|
||||||
|
|
||||||
|
salt_master: salt.example.com
|
||||||
|
salt_master_id: master
|
||||||
|
salt_minion_id: "{{ inventory_hostname }}"
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
- name: Restart salt-master
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: salt-master
|
||||||
|
state: restarted
|
||||||
|
|
||||||
|
- name: Restart salt-minion
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: salt-minion
|
||||||
|
state: restarted
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
- name: Validate salt_role
|
||||||
|
ansible.builtin.assert:
|
||||||
|
that:
|
||||||
|
- salt_role in ["master", "minion"]
|
||||||
|
fail_msg: "salt_role must be either 'master' or 'minion'"
|
||||||
|
|
||||||
|
- import_tasks: repo.yaml
|
||||||
|
|
||||||
|
- import_tasks: master.yaml
|
||||||
|
when: salt_role == "master"
|
||||||
|
|
||||||
|
- import_tasks: minion.yaml
|
||||||
|
when: salt_role == "minion"
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
- name: Install Salt Master
|
||||||
|
ansible.builtin.package:
|
||||||
|
name: salt-master
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Configure Salt Master
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: master.j2
|
||||||
|
dest: /etc/salt/master
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: "0644"
|
||||||
|
notify: Restart salt-master
|
||||||
|
|
||||||
|
- name: Ensure salt-master service is enabled
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: salt-master
|
||||||
|
state: started
|
||||||
|
enabled: true
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
- name: Install Salt Minion
|
||||||
|
ansible.builtin.package:
|
||||||
|
name: salt-minion
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Configure Salt Minion
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: minion.j2
|
||||||
|
dest: /etc/salt/minion
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: "0644"
|
||||||
|
notify: Restart salt-minion
|
||||||
|
|
||||||
|
- name: Ensure salt-minion service is enabled
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: salt-minion
|
||||||
|
state: started
|
||||||
|
enabled: true
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
---
|
||||||
|
- name: Ensure APT keyrings directory exists
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /etc/apt/keyrings
|
||||||
|
state: directory
|
||||||
|
mode: "0755"
|
||||||
|
|
||||||
|
- name: Download Salt public key
|
||||||
|
ansible.builtin.get_url:
|
||||||
|
url: https://packages.broadcom.com/artifactory/api/security/keypair/SaltProjectKey/public
|
||||||
|
dest: /tmp/salt-public.key
|
||||||
|
mode: "0644"
|
||||||
|
|
||||||
|
- name: Convert Salt key to keyring
|
||||||
|
ansible.builtin.command:
|
||||||
|
cmd: >
|
||||||
|
gpg --dearmor
|
||||||
|
--output /etc/apt/keyrings/salt-archive-keyring.pgp
|
||||||
|
/tmp/salt-public.key
|
||||||
|
args:
|
||||||
|
creates: /etc/apt/keyrings/salt-archive-keyring.pgp
|
||||||
|
|
||||||
|
- name: Remove temporary Salt public key
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /tmp/salt-public.key
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: Install Salt repository
|
||||||
|
ansible.builtin.get_url:
|
||||||
|
url: https://github.com/saltstack/salt-install-guide/releases/latest/download/salt.sources
|
||||||
|
dest: /etc/apt/sources.list.d/salt.sources
|
||||||
|
mode: "0644"
|
||||||
|
|
||||||
|
- name: Update apt cache
|
||||||
|
ansible.builtin.apt:
|
||||||
|
update_cache: true
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
interface: 0.0.0.0
|
||||||
|
|
||||||
|
auto_accept: False
|
||||||
|
|
||||||
|
file_roots:
|
||||||
|
base:
|
||||||
|
- /srv/salt/roots
|
||||||
|
|
||||||
|
pillar_roots:
|
||||||
|
base:
|
||||||
|
- /srv/salt/pillar
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
master: {{ salt_master }}
|
||||||
|
id: {{ salt_minion_id }}
|
||||||
|
|
||||||
|
grains:
|
||||||
|
role: {{ salt_role }}
|
||||||
Reference in New Issue
Block a user