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