Install Salt Master dan Minion

Fungsi Salt pada topologi master/minion. Saltmaster bertindak sebagai kontrol pusat untuk klien, yang disebut minion. Minion berfungsi sebagai agents yang terhubung ke master

Percobaan dibawah menggunakan 2 VM dengan OS Ubuntu 22.04

Install repo salt

Install repo pada server Master dan Minion

sudo curl -fsSL -o /etc/apt/keyrings/salt-archive-keyring.gpg https://repo.saltproject.io/salt/py3/ubuntu/22.04/amd64/latest/salt-archive-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/salt-archive-keyring.gpg arch=amd64] https://repo.saltproject.io/salt/py3/ubuntu/22.04/amd64/latest jammy main" | sudo tee /etc/apt/sources.list.d/salt.list

Output

root@saltmaster:/etc/apt/sources.list.d# cat salt.list
deb [signed-by=/etc/apt/keyrings/salt-archive-keyring.gpg arch=amd64] https://repo.saltproject.io/salt/py3/ubuntu/22.04/amd64/latest jammy main

Jalankan apt update

apt update

Install salt pada server Master

apt -y install salt-master salt-ssh salt-syndic salt-cloud salt-api

Start service salt-master

systemctl enable --now salt-master.service
root@saltmaster:~# systemctl status salt-master.service
● salt-master.service - The Salt Master Server
     Loaded: loaded (/lib/systemd/system/salt-master.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2023-01-05 20:16:57 UTC; 2s ago
       Docs: man:salt-master(1)
             file:///usr/share/doc/salt/html/contents.html
             https://docs.saltproject.io/en/latest/contents.html
   Main PID: 4680 (/opt/saltstack/)
      Tasks: 26 (limit: 2322)
     Memory: 200.6M
        CPU: 5.227s
     CGroup: /system.slice/salt-master.service
             ├─4680 "/opt/saltstack/salt/run/run master MainProcess"
             ├─4730 "/opt/saltstack/salt/run/run master PubServerChannel._publish_daemon"
             ├─4731 "/opt/saltstack/salt/run/run master EventPublisher"
             ├─4734 "/opt/saltstack/salt/run/run master Maintenance"
             ├─4735 "/opt/saltstack/salt/run/run master ReqServer ReqServer_ProcessManager"
             ├─4736 "/opt/saltstack/salt/run/run master ReqServer MWorkerQueue"
             ├─4737 "/opt/saltstack/salt/run/run master ReqServer MWorker-0"
             ├─4738 "/opt/saltstack/salt/run/run master ReqServer MWorker-1"
             ├─4739 "/opt/saltstack/salt/run/run master ReqServer MWorker-2"
             ├─4740 "/opt/saltstack/salt/run/run master ReqServer MWorker-3"
             ├─4747 "/opt/saltstack/salt/run/run master FileServerUpdate"

Install salt pada server Minion

apt -y install salt-minion salt-ssh salt-syndic salt-cloud salt-api

Start service salt-minion

systemctl enable --now salt-minion.service
root@saltminion:~# systemctl status salt-minion.service
● salt-minion.service - The Salt Minion
     Loaded: loaded (/lib/systemd/system/salt-minion.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2023-01-05 20:18:14 UTC; 5s ago
       Docs: man:salt-minion(1)
             file:///usr/share/doc/salt/html/contents.html
             https://docs.saltproject.io/en/latest/contents.html
   Main PID: 3210 (/opt/saltstack/)
      Tasks: 3 (limit: 2322)
     Memory: 76.2M
        CPU: 1.869s
     CGroup: /system.slice/salt-minion.service
             ├─3210 "/opt/saltstack/salt/run/run minion"
             └─3216 "/opt/saltstack/salt/run/run minion MultiMinionProcessManager MinionProcessManager"

Setting konfig master pada server Minion

Buat file pada path berikut

nano /etc/salt/minion.d/master.conf

Lalu edit master menyesuaikan ip dari server Master

root@saltminion:~# cat /etc/salt/minion.d/master.conf
master: 172.13.13.178

Restart service salt-minion

root@saltminion:~# systemctl restart salt-minion

Add salt key server Minion

Cek public keys

salt-key -L
root@saltmaster:~# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
saltminion
Rejected Keys:

Pada bagian Unaccepted Keys akan muncul hostname server minion

Selanjutnya add dengan perintah berikut

salt-key -a saltminion 

Atau bisa dengan perintah berikut untuk menerima semua Unaccepted Keys

salt-key -A
root@saltmaster:~# salt-key -A
The following keys are going to be accepted:
Unaccepted Keys:
saltminion
Proceed? [n/Y] y
Key for minion saltminion accepted.

Cek lagi public key

root@saltmaster:~# salt-key -L 
Accepted Keys:
saltminion
Denied Keys:
Unaccepted Keys:
Rejected Keys:

Hostname saltminion sudah masuk ke Accepted Keys

Test Salt

root@saltmaster:~# salt '*' test.version
saltminion:
    3005.1

Help Salt

Beberapa option beserta contoh salt bisa dicek dengan perintah berikut

salt '*' [ options ] sys.doc
salt -E '.*' [ options ] sys.doc cmd

Sebagai referensi Install Salt dengan OS lain bisa dicek pada page Manual Install