Linux vs Minix vs UNIX vs POSIX

First of All, What is Linux?

You see, there is a contradiction on what Linux really is. We see that people refer Linux as an Operating System but on the other hand, some people say that Linux is a kernel. Well, let’s put it this way.

In fact, Linux is a kernel written and named by Linus Torvalds which you can take a look from https://www.kernel.org/. When you think about it, kernel is a useless thingy if there is no software using it since kernel manages hardware based on software inputs.

At this point, we have a cute kernel with us.

On the other hand, Richard Stallman initiated GNU Project, aiming to create a free Operating System with free tools. They were pretty succesful with the mission but there was one thing missing. A proper kernel to manipulate hardware by these tools.

Continue reading

Cloudwatch Metric Configuration JSON

Deploying Configuration .json to Instance

To deploy this configuration file and make the Cloudwatch Agent read it which we installed via Ansible by this post, you need to be sure that you installed Cloudwatch Agent to your instance properly. After installing the agent, you need to put this configuration file under /opt/aws/amazon-cloudwatch-agent/etc directory and make sure you name it amazon-cloudwatch-agent.json.

When you start the agent after putting your configuration file, Cloudwatch service will automatically turn it into a .toml file under the same directory and reads that file.

If your agent refuse to start when you run this:

start amazon-cloudwatch-agent

Make sure you don’t have any syntax errors in metric configuration or common-config.toml where you put your proxies.

Continue reading

Cloudwatch Agent Installation to EC2 Instances with Ansible

Prerequisites

In this post, I will be explaining how to install Cloudwatch Agent using an Ansible Controller Host machine which is used for initializing and provisioning other machines.

You will need:

  • Basic knowledge of Ansible
  • A Controller machine to run the playbook remotely
  • A Controller machine with Ansible installed
  • A Remote machine with SSH Daemon and Python interpreter installed
  • A Remote machine with proper Policy attached (Allowance for PutMetricData)
  • Make sure you have a proper configuration .json file, check here

Playbook

Using a Controller EC2 instance makes it easier to manage other instances since in this way, you don’t need to install Ansible each machine you manage because it works with SSH Daemon and an up-to-date Python interpreter.

You can run this playbook on your Controller machine with:

ansible-playbook -s configure-cloudwatch-agent.yml

In fact, you can use variables to configure different environments such as Development, Production etc. For example, we could define “/opt/aws” as our base_dir and call it
{{ base_dir }}.
Continue reading