SALTY ASSIGNMENT I: SALTSTACK

ASSIGNMENT:

a) Install SaltStack
b) Create a Package-File-Service state for Salt Stack

Assignment based on the course “Linuxin keskitetty hallinta” by Tero Karvinen

PLATFORM

  • Linux Mint 17.2 running on VirtualBox

GETTING SALTY – INSTALLATION

Firstly after booting the virtual machine, I started by running the basic

sudo apt-get update
sudo apt-get upgrade

To install SaltStack, I followed the instructions on docs.saltstack, found here

SaltStack requires repo.saltstack to be added to the sources.list. I proceeded with the instructions by running these commands:

First I imported the SaltStack repository key

wget -O - https://repo.saltstack.com/apt/ubuntu/ubuntu14/latest/SALTSTACK-GPG-KEY.pub | sudo apt-key add

Capture1

Next I added the repo to sources.list:

sudo nano /etc/apt/sources.list

I Added the following line to the list:

deb http://repo.saltstack.com/apt/ubuntu/ubuntu14/latest trusty main

Next I ran

sudo apt-get update

And then install the SaltStack components wanted! I added the master, minion and ssh components.

sudo apt-get install salt-master salt-minion salt-ssh

And there, installation completed!

Before proceeding I checked the installation status by running

 
$ sudo salt-call --version 

Capture2


PACKAGE-FILE-SERVICE

I created a DHCP-service using Salt and PyObjects:

First I created the .sls -file, that is used to run the state.  I created a directory for all the future Salt stuff in which I also created the sls. -file.

 
sudo mkdir -p /srv/salt
sudoedit /srv/salt/dhcp.sls

Documentation for the use of PyObjects in SaltStack states can be found here – docs.saltstack.
I used the article by Tero Karvinen as refenrence.

To use PyObjects in the sls. -file I first defined the shebang as

 #!pyobjects 

After the  So I added a line to the state-file:

 
with Pkg.installed("bind9"): 
        Service.running("bind9", enable=True)

Since dhcp-service will need bind9 to work properly, it will be installed first. I tested the line above and it worked like a charm.

Capture4

Added dhcp install command:

 
with Pkg.installed("bind9"): 
        Service.running("bind9", enable=True)

with Pkg.installed("isc-dhcp-server"):
        Service.running("isc-dhcp-server", enable=True)

After this, I ran the sls. file again with the command:

 
$ sudo salt-call --state-output=mixed --local state.sls dhcp

Capture5

It worked. This is a very basic installation of dhcp-service. Configuration has not been specified and has to be done by hand when using this implementation.

Later I will post a more detailed guide on how to modify the configuration files in Salt inside the state- file.

  • Copying, modifying and redistributing this and all the other documents in this blog is allowed according to the GNU General Public License (versio 2 or newer).http://www.gnu.org/licenses/gpl.html
  • Based on the Linux course by Tero Karvinen 2015: terokarvinen.com
Advertisements

4 thoughts on “SALTY ASSIGNMENT I: SALTSTACK

  1. Pingback: SALT: PILLARS & GRAINS | Juho Syrjänen

  2. Pingback: SALTSTACK: MASTER & SLAVES | Juho Syrjänen

  3. Pingback: SALTSTACK: CUSTOMISE WORKSTATIONS | Juho Syrjänen

  4. Pingback: SALT HIGHSTATE | Juho Syrjänen

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s