SaltStack: Getting redundancy and scalability with multiple master servers

Today’s article is an item I covered briefly during my presentation at SaltConf 2014 (which was a pretty awesome conference by the way). One of the lesser known features of SaltStack is the ability to configure multiple master servers. Having an additional master server allows for some extra redundancy as well as capacity for large implementations. While I covered the benefits of having an additional master server in my presentation I didn’t cover in full detail how to set this up, today I will cover the details of configuring multiple salt masters.

8 examples of Bash if statements to get you started

Shell scripting is a fundamental skill that every systems administrator should know. The ability to script mundane & repeatable tasks allows a sysadmin to perform these tasks quickly. These scripts can be used for anything from installing software, configuring software or quickly resolving a known issue. A fundamental core of any programming language is the if statement. In this article I am going to show several examples of using if statements and explain how they work.

Using rsync to synchronize a local and remote directory

Recently I had moved my blog from WordPress to a custom python script that generates static HTML pages. After generating files I need to copy them to my web servers. While it is easy enough to FTP or SCP the files from my local machine to the remote web servers. I am looking for a little more elegant and automated solution. For that reason I have chosen to use the rsync command.

Yum Plugins: Verifying packages and configurations with Yum Verify

While taking a Red Hat Training course the instructor showed us a Yum plugin called verify. I’ve never used any of the Yum plugins before and after a while of playing with Yum Verify, I have decided that I should share this very cool plugin and introduce others to Yum plugins. What are Yum Plugins Yum plugins are packages that can be installed to provide extra functionality to the Yellowdog Update Manager or yum.

Managing DNS locally with /etc/hosts

Before the advent of a distributed domain name system; networked computers used local files to map hostnames to IP addresses. On Unix systems this file was named /etc/hosts or “the hosts file”. In those days, networks were small and managing a file with a handful of hosts was easy. However as the networks grew so did the methods of mapping hostnames and IP addresses. In modern days with the internet totaling at somewhere around 246 million domain names (as of 2012) the hosts file has been replaced with a more scalable distributed DNS service.

5 Bash for loop examples to make command line tasks more efficient

One of the things that excited me while learning Unix/Linux was how quickly one can perform tasks via the command line. Bash is a fully functional scripting language that incorporates Variables, Loops and If/Then statements; the bash shell allows a user to use these functions while performing adhoc tasks via the command line. This is also true for the other common shells such as bourne, korn shell, and csh.

Symlinks vs Hardlinks and how to create them

In a previous article I covered a little bit about Symlinks and Hardlinks but I never really explained what they are or how to create them. Today I am going to cover how to create both Symlinks and Hardlinks and what the difference is between the two. What are Symlinks and Hardlinks Hard Links In Linux when you perform an listing in a directory the listing is actually is a list of references that map to an inode.

Changing the default nice value for a user or group

Recently I coveredhow to increase and decrease the CPU priority of processes using nice and renice. Today I am going to cover how to change the default niceness value for a user or group. Why change the default CPU priority value? Before explaining how to change the default niceness value, let’s cover why this could be useful. Scenario #1 You have a system that has thousands of users that log in via SSH and could potentially run CPU intensive tasks.

Remote Command Execution with SaltStack

A few weeks back I wrote an article Getting started with SaltStack; that article covered Configuration and Package Automation with Saltstack. In Today’s article I am going to cover SaltStack’s Remote Execution abilities, a feature that I feel Saltstack has implemented better than other automation tools. Running a command in a State If you remember from the previous article SaltStack’s states are permanent configurations. Adding a command in a Salt state is used when you want to have a command that is run after provisioning a server, run every time Salt manages the state of the system or run when certain conditions are true.

Understanding a little more about /etc/profile and /etc/bashrc

Recently I was working on an issue where an application was not retaining the umask setting set in the root users profile or /etc/profile. After looking into the issue a bit it seemed that the application in question only applied the umask setting that was set in /etc/bashrc and would not even accept the values being the applications own start scripts. After doing a bit of researched I learned a little bit more about what exactly these files do, the differences between them and when they are executed.