Skip to main content

Running Salt Minion In Docker Container From Scratch 


In this post, we will install salt minion in docker container and configure the public IP so it will be reachable from outside.

Prerequisites:  
  • Ubuntu host up and running.
  • Public IP should be configured.
  • Docker should be installed.
Skip to end of metadata

PULL UBUNTU DOCKER IMAGE

docker pull  ubuntu:14.04.5
It will download the Ubuntu docker image.


Create a container for salt minion
docker run -ti --name salt-minion-agent  --net=none --privileged=true ubuntu:14.04.5 bash
This will create a container, we will use the same container to install salt minion. Now configure the network for this container.

ASSIGNING AN IP FOR A CONTAINER

Here I am assuming that host machine is having interface "eth0" with public IP configured. Name of the container is salt-minion-agent. The below steps needs to be performed on the docker host.
  • Create a virtual interface

    $ ip link add name veth0 link eth0 type macvlan mode bridge
     New virtual interface "veth0" will be created.

  • Get the process id for the salt master container

    $ docker inspect -f '{{.State.Pid}}' salt-minion-agent
  • $ mkdir -p /var/run/netns

    $ ln -s /proc/<processid>/ns/net /var/run/netns/<processid>

  • Assign the virtual interface to salt-master

    $ ip link set veth0 netns <processid> name eth0
  • Get the public Ip to virtual interface

    $ docker exec -it salt-minion-agent dhclient -v eth0

Note: If you are facing any issue on assigning the static public IP to the container then check out     this guide

Install salt minion on newly created container
  • Login into the container

    $ docker attach salt-minion-agent
  • $ apt-get update
    $ apt-get install software-properties-common
    $ apt-get install python-software-properties
  • Install salt master

    $ add-apt-repository ppa:saltstack/salt
    $ apt-get update
    $ apt-get install salt-minion

         Here we have added the salt stack ppa and installed the salt minion.
  • Edit the minion configuration file (/etc/salt/minion) and search for "master:" and update with the salt-master IP e.g.    master: 10.10.98.90

  • service salt-minion restart


You should have a salt minion configured. Now accept the salt minion key on the salt master.

Run below commands on the salt master
  • Verify an unaccepted key on the salt master

    $ salt-key -L
  • Accept the minion key

    $ salt-key -A


Now you have successfully configured the salt-minion to salt-master.

Test the configuration by running below command, Result must me True.
  • Run the ping command

    $ salt '*' test.ping


You should have a salt stack running on docker container.

Comments

Popular posts from this blog

Running Salt Master In Docker Container From Scratch  In this post, we will install salt master in docker container and configure the public IP so it will be reachable from outside. Prerequisites:     Ubuntu host up and running. Public IP should be configured. Docker should be installed. Skip to end of metadata Go to start of metadat Pull Ubuntu docker image $  docker pull   ubuntu:14.04.5 It will download the Ubuntu docker image. Create a container for salt master $  docker run -ti --name salt-master-server   --net=none --privileged=true ubuntu:14.04.5 bash This will create a container, we will use the same container to install salt master. Now configure the network for this container. Assigning an IP for a container Here I am assuming that host machine is having interface "eth0" with public IP configured.  Name of the container is salt-master-server.  The below steps needs to be per...
How To Run Salt-Master In Docker Container In this post we will use a Ubuntu based docker image in which I have already installed the salt-master and  uploaded it into docker hub. If you are looking for installing the salt-master in docker container from scratch then check out  this guide . Here I am assuming that you are having Ubuntu host up and running with public IP configured on it. Skip to end of metadata Go to start of metadata Pull the docker image $ docker pull yogeshprasadkurmi/ubuntu-salt-master This is a Ubuntu 14.04.5 based image with salt-master installed on it. Salt-master will be up and running if you create the container using this images. Create Salt-master Server $ docker run -ti --name salt-master-server  --net=none --privileged=true yogeshprasadkurmi/ubuntu-salt-master bash This will create a container with salt-master installed on it. Assigning an IP for a container Here I am assuming that host m...

Citizenship Amendment Act

The Citizenship Amendment Bill has now become the Citizenship Amendment Act.  Protests Against It There have been massive protests against it in different corners of the country In Assam,   in the rest of the north eastern states, in West Bengal, Kerala, Karnataka, Uttar Pradesh, and even in Delhi, protests took place Most of the protests were non violent and peaceful but violence erupted in some places like the West Bengal, where a train was set on fire For instance in   Delhi, where some buses were set on fire. Appeal to Peoples  I'd like to say that, all the people who are protesting, you need to be extra sure to ensure that all the protests remain non-violent because you are going to gain nothing out of setting fire to public property What will happen is that, when any protest turns violent, you will not only lose public support but the government will get another excuse to use the police force against you more brutally, to attack you, to fi...