This directory contains configuration templates for various installation and management scripts.
-
Copy the example file:
cp ansible.conf.example ansible.conf
-
Edit the configuration:
vim ansible.conf
-
Use in scripts: Most scripts will automatically look for configuration files in this directory.
Global default settings used by all scripts. This file is loaded first and can be overridden by specific configuration files.
Key settings:
- Backup directories and retention
- Network timeouts
- Security defaults
- Service management preferences
Configuration for Ansible installation script.
Customize:
- Ansible version
- Installation method (package/pip/source)
- Collections to install
- Python version
Configuration for Flask + Nginx installation.
Customize:
- Domain name
- SSL configuration
- Gunicorn workers
- Application repository
Configuration for Jenkins installation.
Customize:
- Jenkins version (LTS/latest)
- Java version
- Memory settings
- Plugins to install
Configuration for backup scripts.
Customize:
- Backup destinations (local/S3/rsync)
- Retention policies
- Compression and encryption
- Notifications
Configuration values can be overridden using environment variables:
# Override backup directory
BACKUP_DIR=/custom/backup/path ./backup_etc.sh
# Multiple variables
BACKUP_DIR=/backups RETENTION_DAYS=60 ./backup_etc.shScripts load configuration in this order (later overrides earlier):
config/defaults.conf- Global defaultsconfig/<script>.conf- Script-specific config- Environment variables - Runtime overrides
- Command-line arguments - Highest priority
- Never commit files with credentials - All example files use
.exampleextension - Protect configuration files:
chmod 600 config/*.conf - Use environment variables for secrets in production
- Consider using vault solutions (HashiCorp Vault, AWS Secrets Manager)
# Create config
cat > config/ansible.conf <<EOF
ANSIBLE_VERSION="2.15.0"
INSTALL_METHOD="pip"
INSTALL_COLLECTIONS=true
COLLECTIONS=("community.general" "ansible.posix")
EOF
# Run installation
./installation_scripts/install_ansible.sh# Create config
cat > config/flask.conf <<EOF
DOMAIN="myapp.example.com"
ADMIN_EMAIL="[email protected]"
ENABLE_SSL=true
GUNICORN_WORKERS=5
EOF
# Run installation
./installation_scripts/install_flask.sh# Create config
cat > config/backup.conf <<EOF
BACKUP_LOCAL_DIR="/backups"
S3_ENABLED=true
S3_BUCKET="my-backup-bucket"
S3_REGION="us-west-2"
ENCRYPT_BACKUPS=true
GPG_RECIPIENT="[email protected]"
RETENTION_DAYS=90
EOF
# Run backup
./miscellaneous/dirbackup.sh /etcCheck that:
- Configuration file exists and is readable
- File has correct syntax (no spaces around
=) - File path is correct
Remember precedence order - command-line arguments override everything:
# Config says RETENTION_DAYS=30, but this overrides it:
./backup_etc.sh --retention 60When adding new configuration options:
- Add to appropriate
.examplefile - Document in this README
- Use sensible defaults
- Add validation in scripts