Go back

Setup and installation of 'Salt-Stack DevOps Automation Powered by Semaphore UI' on Azure

This section describes how to launch and connect to ‘Salt-Stack DevOps Automation Powered by Semaphore UI’ VM solution on Azure.




  1. Open Salt-Stack DevOps Automation Powered by Semaphore UI VM listing on Azure Marketplace.

/img/azure/saltstack-semaphore-vm/marketplace.png

  1. Click on Get It Now
  • Login with your credentials, provide the details here. Once done click on Continue. /img/azure/saltstack-semaphore-vm/continue.png

  • It will take you to the Product details page. Click on Create. /img/azure/saltstack-semaphore-vm/create.png

  • Select a Resource group for your virtual machine

  • Select a Region where you want to launch the VM(such as East US)

/img/azure/saltstack-semaphore-vm/basics-page-01.png

  • Note: If you see “This image is not compatible with selected security type. To keep trusted launch virtual machines, select a compatible image. Otherwise change your security type back to Standard” error message below the Image name as shown in the screenshot below then please change the Security type to Standard.

/img/azure/saltstack-semaphore-vm/image-mismatch-error.png

/img/azure/saltstack-semaphore-vm/standard-security-type.png

  • Optionally change the number of cores and amount of memory.

Select the Authentication type as Password and enter Username as ubuntu and Password of your choice. /img/azure/saltstack-semaphore-vm/basics-page-02.png

  • Optionally change the OS disk size and its type.

/img/azure/saltstack-semaphore-vm/disk.png

  • Optionally change the network and subnetwork names. Be sure that whichever network you specify has ports 22 (for ssh), 3389 (for RDP) and 443 (for HTTPS) exposed.

The VM comes with the preconfigured NSG rules. You can check them by clicking on Create New option available under the security group option.

/img/azure/saltstack-semaphore-vm/network.png

/img/azure/saltstack-semaphore-vm/ports.png

  • Optionally go to the Management, Advanced and Tags tabs for any advance settings you want for the VM.
  • Click on Review + create and then click on Create when you are done.
    Virtual Machine will begin deploying.
  1. A summary page displays when the virtual machine is successfully created. Click on Go to resource link to go to the resource page. It will open an overview page of virtual machine.

/img/azure/saltstack-semaphore-vm/vm-overview.png

  1. If you want to update your password then open up the left navigation pane, select Run command, select RunShellScript and enter following command to change the password of the vm .
sudo echo ubuntu:yourpassword | chpasswd

/img/azure/run_command_option-01.png

/img/azure/run_command_change_passwd-01.png

Now the password for ubuntu user is set, you can SSH to the VM. To do so, first note the public IP address of the VM from VM details page as highlighted below

/img/azure/saltstack-semaphore-vm/public-ip.png

Open putty, paste the IP address and click on Open.

/img/azure/desktop-linux-ubuntu2404/putty-01.png

login as ubuntu and provide the password for ‘ubuntu’ user.

/img/azure/saltstack-semaphore-vm/ssh-login.png

  1. You can also connect to the VM’s desktop environment from any local windows machine using RDP protocol or local linux machine using Remmina.

  2. To connect using RDP via Windows Machine, first note the public IP address of the VM from VM details page as highlighted below

/img/azure/saltstack-semaphore-vm/public-ip.png

  1. Then From your local windows machine, goto “start” menu, in the search box type and select “Remote desktop connection”.
    In the “Remote Desktop connection” wizard, copy the public IP address and click connect

/img/azure/desktop-linux/rdp.png

  1. This will connect you to the VM’s desktop environment. Provide the username (e.g “ubuntu”) and the password set in the step4 to authenticate. Click OK

/img/azure/desktop-linux/rdp-login.png

  1. Now you are connected to the out of box Salt-Stack DevOps Automation Powered by Semaphore UI VM’s desktop environment via Windows Machine.

/img/azure/saltstack-semaphore-vm/rdp-desktop.png

  1. To connect using RDP via Linux machine, first note the external IP of the VM from VM details page, then from your local Linux machine, goto menu, in the search box type and select “Remmina”.

Note: If you don’t have Remmina installed on your Linux machine, firstInstall Remmina as per your linux distribution.

/img/gcp/common/remmina-search.png

  1. In the “Remmina Remote Desktop Client” wizard, select the RDP option from dropdown and paste the external ip and click enter.

/img/gcp/common/remmina-external-ip.png

  1. This will connect you to the VM’s desktop environment. Provide “ubuntu” as the userid and the password set in above reset password step to authenticate. Click OK

/img/gcp/common/remmina-rdp-login.png

  1. Now you are connected to out of box Salt-Stack DevOps Automation Powered by Semaphore UI VM’s desktop environment via Linux machine.

/img/azure/saltstack-semaphore-vm/rdp-desktop.png

  1. To access the Semaphore Web Interface, first reset semaphore admin password by running below command in the SSH terminal -
semaphore user change-by-login --login admin --password NEWPASSWORD --config /home/ubuntu/semaphore/config.json

Replace NEWPASSWORD with your desired password in above command.

/img/gcp/saltstack-semaphore/update-password.png

  1. Once Semaphore password is ready, copy the public ip of the vm from VM’s details page and paste it in the browser using https://VM_Public_IP. Make sure to use https and not http.

/img/azure/saltstack-semaphore-vm/public-ip.png

Browser will display a SSL certificate warning message. Accept the certificate warning and Continue.

/img/gcp/saltstack-semaphore/browser-warning.png

  1. Login with admin user and provide the password set in above step.

/img/gcp/saltstack-semaphore/semaphore-login-page.png

  1. Now you are logged in to Semaphore Web Interface where you can manage salt-stack automation task.

/img/gcp/saltstack-semaphore/semaphore-homepage.png

  1. The VM comes with various Salt models preconfigured out of the box for you. The Salt Configuration files are located at /etc/salt directory. You can access these files and folders from SSH or RDP sessions.

/img/gcp/saltstack-semaphore/salt-directory.png

salt-master

  • salt-master is the central server in the SaltStack architecture. It manages communication with Salt minions (client machines), orchestrates tasks, and executes commands or states across the infrastructure.

salt-minion

  • salt-minion is the client component in the SaltStack architecture. It runs on managed systems (servers, virtual machines, etc.) and communicates with the Salt-Master to receive instructions, execute commands, and return results.

salt-cloud

  • salt-cloud is a component of SaltStack that manages cloud infrastructure. It allows you to automate the creation, configuration, and destruction of virtual machines (VMs) across multiple cloud providers like AWS, Google Cloud, Azure, and others.

salt-api

  • salt-api is an interface that allows external applications and services to interact with a Salt-Master via a RESTful API. It provides programmatic access to Salt’s capabilities.

salt-proxy

  • Salt-Proxy is a component in SaltStack used to manage devices or systems that cannot run the standard Salt Minion due to limitations, such as network devices, IoT devices, or certain appliances.

salt-syndic

  • Salt-Syndic is a component of SaltStack used in large-scale environments to create a multi-tiered Salt architecture. It acts as an intermediary between a Salt-Master and multiple Salt-Masters (or other syndics).

salt-ssh

  • salt-ssh is a mode of operation in SaltStack that allows you to manage and automate remote systems using SSH instead of the typical Salt-Master/Minion setup.

salt-roster

  • salt-roster is a configuration file in SaltStack used in conjunction with Salt-SSH. It defines the list of target systems (or minions) that Salt-SSH will manage, including connection details such as hostnames, IP addresses, and user credentials for SSH access.

salt-pki

  • salt-pki (Public Key Infrastructure) is a system in SaltStack used to manage the security keys and certificates that facilitate secure communication between Salt-Masters and Salt-Minions.
  1. Salt master base repository for salt sls files is /srv/salt.

/img/gcp/saltstack-semaphore/salt-master-directory.png

  1. Semaphore config directory is /home/ubuntu/semaphore.

/img/gcp/saltstack-semaphore/semaphore-config-directory.png


If you want to further configure SaltStack then please visit Configuring SaltStack page.

For more details on SaltStack or Semaphore please refer to Official Documentation Page

Go back