The goal of this use case is to programmatically install the Salt minion service on a minion by connecting a Linux VM to your SaltStack Config environment.
Prerequisites
Before you can deploy a minion using the API in a Linux environment, you must:
- Have a SaltStack Config environment with RaaS deployed.
- Have a Salt master and Salt minion installed.
- Have a Linux VM deployed.
Procedure
- Verify that the folder etc/salt/cloud.deploy.d on the Salt master contains these files.
If you do not see the files, contact support.
Note: The xxxx in the filename, for example, salt-xxxx-redhat-8-x86_64-amd64.tar.gz, should match the version of the Salt master. To verify the version of the Salt master, run the
salt-master -V command on the Salt master.
- If your environment is air-gapped, complete these steps:
- Open the RaaS configuration file in
/etc/raas/raas
.
- Add these lines to the configuration file:
minion_deployment:
airgap_install: true
- Restart the RaaS service using the
service raas restart
command.
Note: If you are using a hardened Linux VM, there are some situations where scripts cannot be run from /tmp on the VM.
- To identify the FQDN of the Salt master, run the
salt saltmaster grains.get fqdn
command in the Salt master's terminal.
- Ensure that the FQDN is configured for the Salt master by running the ping [FQDN] command.
- To open Python, run
python3
.
- Make this API call using an SSEAPI client with the correct credentials for your environment:
from sseapiclient import APIClient
client = APIClient('https://<master-ip>', '<ssc-username>', '<sscpassword>', ssl_validate_cert=False)
client.api.minions.deploy_minion(
master_id = '<master-id>',
host_name_ip = '<prospective minion’s ip>',
os = ‘<prospective minion’s os>’,
minion_id = '<desired-minion-name-for-prospective-minion>',
username = '<ssh-username-for-prospective-minion>',
password = '<ssh-password-for-prospective-minion>',
)
The deploy.minion
function begins running in your SaltStack Config environment. You can verify that the job is running in the Activity tab of the SaltStack Config user interface.
Note: If you are deploying a minion from vRA, then this API call is performed by vRA.
Results
The minion was successfully deployed and configured from your Linux environment and API call.
What to do next
Verify that the minion was deployed successfully by running a
test.ping command against the minion using the
Run Command window or by running the
\* test.ping and
\* test.versions commands in the Salt master command window.