This project is a collection of Ansible Playbooks for automated and standardized Linux server setup in DevOps environments. Using this project, you can prepare your servers for service in minimal time.
- Prepating-Server: Doing update and upgrade from apt Package Manager
- Docker: Installing Docker and its utilities from apt Package Manager - Add user to Docker user group - Start and enable Docker service
- Adding Soon ...
- Clone the Repository
git clone https://github.com/younesmod/ansible-devops-foundation.git
cd ansible-devops-foundation- Configure Servers
# Copy configuration file
cp vars/server_vars.example.yaml vars/server_vars.yaml
# Edit settings
nano vars/server_vars.yaml- Run Playbooks
# Run all playbooks
ansible-playbook -i inventory/host.yaml -e @vars/server_vars.yaml playbook/*
# Or run individually
ansible-playbook -i inventory/host.yaml -e @vars/server_vars.yaml playbook/docker.yml- Full Setup:
ansible-playbook -i inventory/host.yaml -e @vars/server_vars.yaml playbook/*- Step-by-Step Execution:
# 1. Docker Installation
ansible-playbook -i inventory/host.yaml -e @vars/server_vars.yaml playbook/docker.yaml
# 2. Security Hardening
ansible-playbook -i inventory/host.yaml -e @vars/server_vars.yaml playbook/preparing.yaml
# 3. Security Hardening
ansible-playbook -i inventory/host.yaml -e @vars/server_vars.yaml playbook/hardening.yaml
# 4. Monitoring Setup (in-progress)
ansible-playbook -i inventory/host.yaml -e @vars/server_vars.yaml playbook/monitoring.yamlansible-devops-foundation/
โโโ inventory/
โ โโโ host.yaml # Inventory file
โโโ playbook/
โ โโโ preparing.yaml # Preparing setup
โ โโโ hardening.yaml # Security hardening
โ โโโ harden-ssh.yaml # SSH hardening
โ โโโ harden-os.yaml # OS hardening
โ โโโ docker.yaml # Docker installation
โ โโโ nginx.yaml # Nginx setup + Nginx Hardening
โ โโโ nginx-hardening.yaml # Nginx Hardening
โ โโโ nginx-setup.yaml # Nginx setup
โ โโโ php-setup.yaml # Php setup
โ โโโ setup-node.yaml # Preparing + Docker
โโโ vars/
โ โโโ server_vars.yaml # Main variables
โโโ roles/ # Ansible roles
โ โโโ docker/ # Docker role
โ โ โโโ ...
โ โโโ preparing-server/ # Preparing role
โ โ โโโ ...
โ โโโ nginx/ # Nginx role
โ โ โโโ ...
โ โโโ php/ # Php role
โ โ โโโ ...
โ โโโ os-hardening/ # OS-Hardening role
โ โ โโโ ...
โ โโโ ssh-hardening/ # SSH-Hardening role
โ โ โโโ ...
โ โโโ nginx-hardening/ # Nginx-Hardening role
โ โโโ ...
โโโ .gitignore
โโโ ansible.cfg # Ansible config
โโโ LICENSE # License file
โโโ README.fa.md
โโโ README.md
- Preparing-Server
- FreeBSD and OpenBSD needs python on target OS.
- Arch Linux may need some extra tweaks.
- For SUSE needs to activate some of repositories.
- Packages are optimized for each distros.
- Docker
- OpenBSD DOESN'T support docker natively.
- FreeBSD does support docker but there are some limitations.
- RedHat/CentOS 8+ uses
dnfpackage manager instead ofyum. - It's better to use official repository for production areas.
- โBe sure that the
$useris existed on OS.