DevOps Classroom notes 26/Feb/2025

Ansible

  • Ansible deals with two types of nodes
    • Control Node:
      • This is where we install ansible. This has to be a linux instance
    • Node:
      • This is where we want to deploy applications, This can be any os or even networking devices
  • We have three inputs that we need to provide to ansible
    • inventory:
      • list of nodes (ip addresses/name)
      • This is mostly static
    • credentials:
      • credential for ansible to login into node and execute configuraions
      • This is also mostly static
    • desired state:
      • What we want
      • This changes from application to application and also across releases in the same application
      • Ways to express desired state:
        • command: This option expects you to express desired state in command line form
        • yaml: This is referred as playbook, where we create a yaml file which is version controlled
  • Ansible Product lines:
    • Ansible core: This is free opensource tool
    • Ansible Automation Platform (Paid):
      • Ansible
      • Ansible Tower
        • User Management
        • RBAC
        • Automation Mesh
    • AWX (free ansible tower equivelent): No Redhat support

Ansible Components

  • Inventory
  • Playbook: Desired state in yaml form
  • Module
  • Role
  • Collection
  • Plugin
  • Vault
  • galaxy

Find me steps to install lamp stack on ubuntu 24.04

  • Steps
sudo apt update -y
sudo apt install apache2 -y
sudo systemctl start apache2
sudo systemctl enable apache2
sudo apt install php libapache2-mod-php php-mysql -y
# create a file
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
  • Now access http://<ip>/info.php
  • Ansible playbook (rough)
---
- name: install lamp
  hosts: all
  become: yes
  tasks:
    - name: install apache
      ansible.builtin.apt:
        name: apache2
        update_cache: yes
        state: present
    - name: enable and start apache
      ansible.builtin.systemd:
        name: apache2
        enabled: yes
        state: started
    - name: create a sample page
      ansible.builtin.copy:
        src: info.php
        dest: /var/www/html/info.php

Ways of Working

  • Get the manual commands for doing the configuration and ensure they are working
  • For each command try to find how to express desired state
  • Now create a inventory, configure credentials, and execute using ansible.

What we need to have

  • Cloud Accounts
    • AWS
    • Azure
  • Softwares:
    • ssh
    • visual studio code
Published
Categorized as Uncategorized Tagged

By continuous learner

devops & cloud enthusiastic learner

Leave a ReplyCancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Please turn AdBlock off
Social Media Icons Powered by Acurax Web Design Company

Discover more from Direct DevOps from Quality Thought

Subscribe now to keep reading and get access to the full archive.

Continue reading

Exit mobile version
%%footer%%