2.4 KiB
2.4 KiB
🚀 Ansible Web Server Automation
Simple, production-ready Ansible project for automated web server setup.
📋 Features
- ✅ Nginx web server installation
- ✅ Firewall configuration (UFW)
- ✅ Application deployment
- ✅ User management
- ✅ SSL/TLS support
- ✅ Automated configuration
🏗️ Structure
ansible/webserver-automation/
├── ansible.cfg # Ansible config
├── inventory/ # Server inventory
│ ├── production
│ └── development
├── group_vars/ # Variables
│ ├── all.yml
│ └── webservers.yml
├── playbooks/ # Playbooks
│ ├── site.yml # Main playbook
│ └── deploy.yml # Deployment
└── roles/ # Ansible roles
├── common/
├── nginx/
└── firewall/
🚀 Quick Start
Install Ansible
sudo apt install ansible -y
Clone Project
git clone http://git.thedevops.dev/admin/k3s-gitops.git
cd k3s-gitops/ansible/webserver-automation
Configure
Edit inventory/production:
[webservers]
web1 ansible_host=192.168.1.10
[all:vars]
ansible_user=ubuntu
Run
# Test connection
ansible -i inventory/production all -m ping
# Deploy
ansible-playbook -i inventory/production playbooks/site.yml
📚 Usage
Full Setup
ansible-playbook -i inventory/production playbooks/site.yml
Deploy App
ansible-playbook -i inventory/production playbooks/deploy.yml
Check Mode (Dry Run)
ansible-playbook -i inventory/production playbooks/site.yml --check
Verbose
ansible-playbook -i inventory/production playbooks/site.yml -vv
🔧 Configuration
Edit group_vars/webservers.yml:
nginx_port: 80
app_name: myapp
app_dir: /var/www/myapp
domain_name: example.com
🔐 Security
SSH Keys
ssh-keygen -t ed25519
ssh-copy-id ubuntu@192.168.1.10
Ansible Vault
ansible-vault encrypt group_vars/production.yml
ansible-vault edit group_vars/production.yml
🧪 Testing
# Syntax check
ansible-playbook playbooks/site.yml --syntax-check
# List tasks
ansible-playbook -i inventory/production playbooks/site.yml --list-tasks
📦 Requirements
- Ansible >= 2.9
- Python >= 3.6
- Target: Ubuntu 20.04/22.04
- SSH access
📄 License
MIT
Status: ✅ Ready to use!
Version: 1.0.0