Go back

Setup and installation of 'DevOps Automation Powered by License Free Ansible & Semaphore web UI' on GCP

This section describes how to provision and connect to ‘DevOps Automation Powered by License Free Ansible & Semaphore web UI’ VM solution on GCP.

  1. Open DevOps Automation Powered by License Free Ansible & Semaphore UI listing on GCP Marketplace.

  2. Click Get Started.

/img/gcp/ansible-semaphore-vm/marketplace.png

It will ask you to enable the API’s if they are not enabled already for your account. Please click on enable as shown in the screenshot.

/img/gcp/nvidia-ubuntu/enable-api.png

  • It will take you to the agreement page. On this page, you can change the project from the project selector on top navigator bar as shown in the below screenshot.

  • Accept the Terms and agreements by ticking the checkbox and clicking on the AGREE button. /img/common/gcp_agreement_page.png

  • It will show you the successfully agreed popup page. Click on Deploy. /img/common/gcp_agreement_accept_page.png

  • On deployment page, give a name to your deployment.

  • In Deployment Service Account section, click on Existing radio button and Choose a service account from the Select a Service Account dropdown.
  • If you don't see any service account in dropdown, then change the radio button to New Account and create the new service account here.
  • If after selecting New Account option, you get below permission error message then please reach out to your GCP admin to create service account by following Step by step guide to create GCP Service Account and then refresh this deployment page once the service account is created, it should be available in the dropdown.

  • You are missing resourcemanager.projects.setIamPolicy permission, which is needed to set the required roles on the created Service Account
  • Select a zone where you want to launch the VM(such as us-east1-a)
  • Optionally change the number of cores and amount of memory. ( This defaults to 1 vCPUs and 3.75 GB RAM)
  • Optionally change the boot disk type and size. (This defaults to ‘Standard Persistent Disk’ and 20 GB respectively)
  • Optionally change the network name and subnetwork names. Be sure that whichever network you specify has ports 22 (for ssh), 3389 (for RDP) and 443 (for HTTPS) exposed.
  • Click Deploy when you are done.
  • DevOps Automation Powered by License Free Ansible & Semaphore web UI will begin deploying.

/img/gcp/ansible-semaphore-vm/deployed-mp-01.png

/img/gcp/ansible-semaphore-vm/deployed-02.png

/img/gcp/ansible-semaphore-vm/deployed-03.png

  1. A summary page displays when the compute engine is successfully deployed. Click on the Instance link to go to the instance page .

  2. On the instance page, click on the “SSH” button, select “Open in browser window”.

/img/gcp/puppet-support/ssh-option.png

  1. This will open SSH window in a browser. Switch to ubuntu user and navigate to ubuntu home directory.
sudo su ubuntu
cd /home/ubuntu/

/img/gcp/ansible-semaphore-vm/switch-user.png

  1. Run below command to set the password for “ubuntu” user
sudo passwd ubuntu

/img/gcp/ansible-semaphore-vm/ssh-passwd.png

  1. Now the password for ubuntu user is set, you can connect to the VM’s desktop environment from any local windows machine using RDP or linux machine using Remmina.

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

/img/gcp/saltstack-semaphore/external-ip.png

  1. Then From your local windows machine, goto “start” menu, in the search box type and select “Remote desktop connection”

  2. In the “Remote Desktop connection” wizard, paste the external ip and click connect

/img/gcp/jupyter-python-notebook/rdp.png

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

/img/gcp/jupyter-python-notebook/rdp-login.png

  1. Now you are connected to out of box DevOps Automation Powered by License Free Ansible & Semaphore web UI VM’s desktop environment via Windows machines.

/img/azure/minikube/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, first Install 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 step 6 to authenticate. Click OK

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

  1. Now you are connected to out of box DevOps Automation Powered by License Free Ansible & Semaphore web UI VM’s desktop environment via Linux machine.

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

  1. To access the Semaphore Web Interface, first reset semaphore admin password by running below command in the SSH terminal -

Replace NEWPASSWORD with your desired password here.

semaphore user change-by-login --login admin --password NEWPASSWORD --config /home/ubuntu/semaphore/config.json

/img/azure/ansible-semaphore-vm/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.

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

/img/azure/ansible-semaphore-vm/browser-warning.png

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

/img/azure/ansible-semaphore-vm/semaphore-login-page.png

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

/img/azure/ansible-semaphore-vm/semaphore-homepage.png

  1. The VM comes with various Ansible modules preconfigured out of the box for you. The Ansible executable are located at /usr/bin/ directory. You can access these files and folders from SSH or RDP sessions.

/img/azure/ansible-semaphore-vm/ansible-executables.png

ansible-community

  • ansible-community allows users to manage, install, and use Ansible collections created and shared by the community, typically available through Ansible Galaxy.

ansible-config

  • The ansible-config executable is a command-line tool in Ansible that helps manage configuration settings. It allows users to view, validate, and edit Ansible’s configuration files (ansible.cfg).

ansible-connection

  • The ansible-connection is used to manage and handle connections between Ansible and remote systems. It helps configure the connection type (like SSH, local, or others) and allows troubleshooting or testing of connection-related issues during automation tasks.

ansible-console

  • The ansible-console provides an interactive command-line interface (CLI) for running Ansible commands and playbooks. It allows users to interactively execute Ansible tasks, explore modules, and test playbooks in a live environment.

ansible-doc

  • The ansible-doc is a command-line tool used to view documentation for Ansible modules, plugins, and other components. It allows users to quickly access detailed information about a module’s usage, options, and examples directly from the terminal.

ansible-galaxy

  • The ansible-galaxy is a command-line tool used to interact with Ansible Galaxy, a hub for sharing and discovering Ansible roles, collections, and content. With this tool, users can search for, install, create, and manage roles and collections that can be used in Ansible playbooks to automate tasks across different systems.

ansible-inventory

  • The ansible-inventory is a command-line tool used to manage and view Ansible inventories. It allows users to display, generate, and validate the inventory of managed hosts (either from static files or dynamic sources).

ansible-playbook

  • The ansible-playbook is used to run Ansible playbooks, which are YAML files that define a series of automation tasks. This tool allows users to execute configurations, deployments, and orchestrations across multiple systems by reading the playbook and applying the defined tasks to the target hosts.

ansible-pull

  • The ansible-pull is used to pull Ansible playbooks from a remote repository (like Git) and apply them to the local machine. It runs the playbooks in reverse from the typical Ansible model: instead of Ansible pushing configurations to remote machines.

ansible-vault

  • The ansible-vault is used to encrypt and decrypt sensitive data in Ansible. It allows users to securely store secrets, such as passwords or API keys, within Ansible playbooks and variables.

ansible-test

  • The ansible-test is used for testing and validating Ansible code, such as modules, plugins, and collections. It helps developers run unit tests, integration tests, and linting checks to ensure the quality and correctness of their Ansible code.
  1. Ansible base repository for ansible example playbook is localted at /srv/ansible.

/img/azure/ansible-semaphore-vm/ansible-example-repository.png

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

/img/azure/ansible-semaphore-vm/semaphore-config-directory.png


If you want to further configure Ansible then please visit How to run Ansible Playbooks from Semaphore UI page.

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

Go back