Category Archives: Configuration/Orchestration

Helm: Kubernetes package manager – an overview, getting started

3 May 2020
 

 The official documentation calls Helm as a “The package manager for Kubernetes“, but in fact, Helm is something bigger than just a package manager – it’s more an application controlling tool for their installation, managing, upgrading, configuration, etc. In this post, we will take an overview of Helm in general, its Charts, templates, variables, and… Read More »

AWS Elastic Kubernetes Service: a cluster creation automation, part 2 – Ansible, eksctl

1 May 2020
 

 The first part – AWS Elastic Kubernetes Service: a cluster creation automation, part 1 – CloudFormation. To remind the whole idea is to create an automation process to create an EKS cluster: Ansible uses the cloudformation module to create an infrastructure by using an Outputs of the CloudFormation stack created – Ansible from a template will… Read More »

Kubernetes: monitoring with Prometheus – exporters, a Service Discovery, and its roles

26 April 2020
 

 The next task with our Kubernetes cluster is to set up its monitoring with Prometheus. This task is complicated by the fact, that there is the whole bunch of resources needs to be monitored: from the infrastructure side – ЕС2 WokerNodes instances, their CPU, memory, network, disks, etc key services of Kubernetes itself – its… Read More »

AWS Elastic Kubernetes Service: a cluster creation automation, part 1 – CloudFormation

24 April 2020
 

 The task is: create automation to roll out an AWS Elastic Kubernetes Service cluster from scratch. Will use: Ansible: to automate CloudFormation stack creation and to execute eksctl with necessary parameters CloudFormation with NestedStacks: to create an infrastructure – VPC, subnets, SecurityGroups, IAM-roles, etc eksctl: to create a cluster itself using resources created by CloudFormation… Read More »

Jenkins: Docker Compose deployment from Ansible with ECR authentication

26 September 2019
 

 In addition to the AWS: create an Elastic Container Registry and Jenkins deploy job post – the next part, where we will create a new Jenkins job to deploy a Docker Compose file to run our Docker image. Docker Compose file will be updated by an Ansible role called docker-deploy, which will set the desired… Read More »

NGINX: multi-branch deployment with Ansible, NGINX map and HTTP Headers

26 June 2019
 

 We have a standard LEMP setup NGINX, PHP-FPM. Application – Yii-framework, deployed from Jenkins using Ansible role with the synchronize module on backend hosts in a /data/projects/prjectname/frontend/web,  directory which is set as a root for an NGINX virtual host. The task is to have the ability to deploy the same application on the same backend… Read More »

Redis: replication, part 4 – writing an Ansible role fore the Master-Slave replication with Redis Sentinel provisioning

15 April 2019
 

 The next post from the Redis replication series. Previous parts: Redis: replication, part 1 – an overview. Replication vs Sharding. Sentinel vs Cluster. Redis topology. Redis: replication, part 2 – Master-Slave replication, and Redis Sentinel Redis: replication, part 3 – redis-py and work with Redis Sentinel from Python The task now is to write an… Read More »

Redis: Sentinel – bind 0.0.0.0, the localhost issue and the announce-ip option

10 April 2019
 

 Originally, in a Sentinel’s configs, I have used the bind 0.0.0.0 to make them accessible from external hosts. Because of this when I started rolling out this setup on a real environment faced with an issue when Sentinels could not determine a Master host and other Sentinel hosts. In this post – such an issue… Read More »

Ansible: get a target host’s IP

9 April 2019
 

 The task is to get a host’s IP during executing an Ansible task. Below – two examples of how this can be done. Example 1 – hostvars See the documentation here>>>. Code: – name: Test hosts list debug: msg: “{{ hostvars[inventory_hostname][‘ansible_default_ipv4’][‘address’] }}” Run it: [simterm] … TASK [test : Test hosts list] **** ok: [dev.backend-app1-internal.example.com]… Read More »

Terraform: creating a project with an AWS EC2, VPC, and AWS cross-region VPC peering connection

18 March 2019
 

 One of the disappointing surprises in my AWS CloudFormation experience was the fact that it wasn’t able to automatically create cross-region VPC-peering connections. Note: this post originally was written in Rus on 28 June 2018 but now CloudFormation can do it, check the PeerRegion parameter of the AWS::EC2::VPCPeeringConnection resource. As a result – it tries… Read More »