Day 59 Task: Ansible Project

Day 59 Task: Ansible Project

Project Title: Revolutionizing Nginx Deployment through Automated Ansible Playbooks

Project Description: In this project, I leveraged Ansible playbooks to automate the deployment of Nginx web servers across multiple servers. The primary goal was to efficiently manage the installation, configuration, and deployment of Nginx, simplifying the process of hosting a web application.

Key Tasks:

  1. Installing Nginx:

    • The Ansible playbook begins by ensuring that the server's apt package cache is up to date. It then installs Nginx using the apt module.
  2. Starting Nginx Service:

    • After installation, the playbook starts the Nginx service and ensures that it is enabled to run on system boot.
  3. Deploying the Website:

    • The playbook deploys a website by copying the index.html file to the appropriate directory (/var/www/html), making the web content accessible via Nginx.
  4. Verification:

    • The project emphasizes the importance of verification. After running the Ansible playbook, it is crucial to check and ensure that the website is correctly deployed on all target servers.

Benefits and Outcomes: Through the implementation of this Ansible playbook, we achieved several key benefits:

  • Automation: The playbook automates the entire process of Nginx installation, configuration, and website deployment, reducing manual intervention.

  • Consistency: Ansible ensures consistent configurations across multiple servers, eliminating configuration drift.

  • Efficiency: Rapid deployment of Nginx and web content simplifies the hosting of web applications.

  • Scalability: This approach can be scaled to manage a large number of servers efficiently.

Learning and Expertise: This project underscores the power of Ansible as an automation tool for managing infrastructure and application deployment. It showcases the ease and effectiveness of Ansible playbooks in simplifying complex tasks.

Conclusion: In conclusion, this project highlights the efficiency and simplicity of automating Nginx deployment using Ansible playbooks. It not only streamlines the process but also ensures consistent and reliable results across multiple servers. Ansible continues to be a valuable tool in the DevOps arsenal for automating and managing infrastructure.

🔶 Let's dive into the project.

🔶 Task: Deploy a webpage using Ansible

  • Create 3 EC2 instances. Make sure all three are created with the same key pair.

  • Install Ansible on a host server.

      sudo apt-add-repository ppa:ansible/ansible 
      sudo apt update -y
      sudo apt install ansible -y
    
  • Copy the private key from local to the Host server (Ansible_host) at (/etc/ansible/hosts)

          scp -i your-existing-key.pem your-private-key.pem ec2-user@ansible-master-ip:/path/to/destination/
    
  • Access the inventory file using sudo vim /etc/ansible/hosts.

  • Create a playbook to install Nginx.

      ---
      - name: Install Nginx
        hosts: servers
        become: yes
    
        tasks:
          - name: Update apt package cache
            apt:
              update_cache: yes
    
          - name: Install Nginx
            apt:
              name: nginx
              state: present
    
          - name: Start Nginx
            service:
              name: nginx
              state: started
    

      #To run nginx playbook
      ansible-playbook nginx.yml
    

  • Deploy a sample webpage using the ansible-playbook.

    Now update the nginx.yml file to include indext.HTML

      ---
      - name: Install Nginx
        hosts: servers
        become: yes
    
        tasks:
          - name: Update apt package cache
            apt:
              update_cache: yes
    
          - name: Install Nginx
            apt:
              name: nginx
              state: present
    
          - name: Start Nginx
            service:
              name: nginx
              state: started
              enabled: yes
    
          - name: Deploy website
            copy:
              src: index.html
              dest: /var/www/html
    

    Now run ansible-playbook nginx.yml

    Check and verify the website deployed on all the servers.

In conclusion, Ansible playbooks provide an incredibly efficient and powerful way to manage and deploy infrastructure and applications. As we've learned, deploying a simple web app using Ansible is not just a good project; it's a testament to the ease and effectiveness of this automation tool.


Happy Learning :)

Stay in the loop with my latest insights and articles on cloud ☁️ and DevOps ♾️ by following me on Hashnode, LinkedIn (https://www.linkedin.com/in/chandreshpatle28/), and GitHub (https://github.com/Chandreshpatle28).

Thank you for reading! Your support means the world to me. Let's keep learning, growing, and making a positive impact in the tech world together.

#Git #Linux Devops #Devopscommunity #90daysofdevopschallenge #python #docker #Jenkins #Kubernetes #AWS

Did you find this article valuable?

Support Chandresh Patle's Blog by becoming a sponsor. Any amount is appreciated!