Skip to main content

How To Run Salt-Minion In Docker Container


In this post we will use a Ubuntu based docker image in which I have already installed the salt-minion and uploaded it into docker hub. Now if you are looking for installing the salt-minion in docker container from scratch then check out my other 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

Pull the docker image

$ docker pull yogeshprasadkurmi/ubuntu-salt-minion
This is a Ubuntu 14.04.5 based image with salt-minion installed on it. Salt-minion will be up and running if you create the container using this images.

Create salt minion agent

$ docker run -ti --name salt-minion-agent  --net=none --privileged=true yogeshprasadkurmi/ubuntu-salt-minion bash
This will create a container with salt-minion installed on it.

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 minion 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-minion-agent

    $ 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

Configure salt minion to connect to salt master


This needs to be run inside the container(salt-minion-agent)

  • 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

  • Restart the salt-minion service 

    $ service salt-minion restart

Comments

Popular posts from this blog

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...
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 install Salt-Master with Salt-API in Docker Container In this guide, we will create a docker image with salt-master and salt-api installed on it. later we will use the same image to create the container. Clone the repo: git clone https://github.com/yogeshprasad/salt-examples.git Change the dir: cd /root/salt-examples/build-salt-master-api Build the docker image: docker build -t "salt-server-img" . Create the container: docker run -ti --name="my-salt-server" salt-server-img bash Test the api: curl -k https://172.17.0.2:8553/login -H "Accept: application/x-yaml" -d username='admin' -d password='password' -d eauth='pam 172.17.0.2 : It is a container private IP.