feat(roles/salt): added salt role

This commit is contained in:
ITQ
2026-07-21 00:13:42 +03:00
parent 4acc08983e
commit 8b4bc3c736
8 changed files with 122 additions and 0 deletions
+6
View File
@@ -0,0 +1,6 @@
---
salt_role: minion
salt_master: salt.example.com
salt_master_id: master
salt_minion_id: "{{ inventory_hostname }}"
+10
View File
@@ -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
+14
View File
@@ -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"
+20
View File
@@ -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
+20
View File
@@ -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
+36
View File
@@ -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
+11
View File
@@ -0,0 +1,11 @@
interface: 0.0.0.0
auto_accept: False
file_roots:
base:
- /srv/salt/roots
pillar_roots:
base:
- /srv/salt/pillar
+5
View File
@@ -0,0 +1,5 @@
master: {{ salt_master }}
id: {{ salt_minion_id }}
grains:
role: {{ salt_role }}