Giter VIP home page Giter VIP logo

ansible-roles's Introduction

Ansible Library

Library of Ansible plugins and roles for deploying various services.

This library is covering multiple use-cases:

  • Deploying a full Django stack
  • Deploying a full LAMP stack
  • Deploying an ELK stack (work in progress)
  • Deploying an Ampache server
  • Deploying a GitLab server using Omnibus
  • Deploying an ownCloud server or client
  • Deploying a SeaFile server or client
  • Installing a {development, multimedia, ...} computer under Debian/Ubuntu
  • Tweaking an Ubuntu Phone (never install nfs-client!)
  • ...

The roles are generic enough to be usable as-is.

Scripts

Development Tools

  • check-syntax.py : Check YAML syntax of a whole file tree.
  • git-init-roles.py : Convert roles from "ansible-galaxy copies" to proprer "git clones". Useful when working on roles.
  • git-status-roles.py : Show the git status of roles when its meaningful (something changed). Useful when working on roles.
  • git-update-roles.py : Iterate over all roles and do git pull. Usefull when working on roles.
  • happy-new-year.py : Iterate over all roles and refresh end-year with current year. Usefull or not, that is the question.
  • refresh-roles.sh : Use ansible-galaxy to install/update roles in roles/ directory. Roles are listed in requirements.yml.

Legacy

  • generate-config.py : Generate ansible.cfg with ansible-config.
  • split/ : Scripts used to split this library in many repositories.

Examples

An Ubuntu Desktop Computer

PlayBook

---

- import_playbook: roles-df/playbooks/devices.yml

- hosts:
    - seafile-client
  roles:
    - seafile-client

Inventory

[gaming]
my-computer

[laptop]
my-computer

[seafile-client]
my-computer

Variables

ansible_connection: local
ansible_host: 127.0.0.1
ansible_port: 22
ansible_user: me
ssh_port: 22
user: '{{ ansible_user }}'
group: '{{ ansible_user }}'
desktop_package: ubuntu-desktop
java_packages:
  - icedtea-8-plugin
  - openjdk-8-jre
extra_apt_repositories:
  - ppa:nilarimogard/webupd8
extra_packages:
  - nvidia-prime
  - prime-indicator

Django Development Server

See django-site role's README and example.

Mounting a S3 bucket with s3fs

See s3fs role's README.

Seafile Professional Server

See:

Setup a PostgreSQL server with an application DB

See:

  • postgresql role's README.
  • postgresql-databases role's README.

Installing AWS utilities

See cloudwatch-logs-agent role's README.

Versioning

Convention: v<MAJOR>.<MINOR>.<PATCH>

MAJOR Upgrade

Breaking change that cannot be applied as-is on hosts setup using a previous version of the role. It may requires a migration procedure or some additional code.

Examples:

  • A deprecated feature is now removed
  • More to come

MINOR Upgrade

Non-breaking change that cannot be applied as-is without updating the automation using the role.

Requires some changes in the code using the role.

Examples:

  • A default value defined in the role is changed or removed
  • A variable is renamed or its data scheme is modified
  • More to come

PATCH Upgrade

An update that is assumed to be safe to be applied.

Examples:

  • Some bug fixes
  • Code or templates refactoring
  • There is a new feature (disabled by default)
  • There is a new action available (you have to call it)
  • Enhanced support of the hundreds Linux distributions

2014-2022 - David Fischer

ansible-roles's People

Contributors

davidfischer-ch avatar my-kel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ansible-roles's Issues

Mount always remount bind mounts

Yes, this is a temporary hack until a smarter algorithm is implementation.
For example, using findmnt --target ... -o source -n.

Add roles README

  • ampache
  • android-studio
  • bootstrap
  • celery
  • composer
  • cordova
  • desktop
  • development
  • docker
  • drush
  • fail2ban
  • gaming
  • gexiv2
  • github
  • gitlab
  • gpac
  • haproxy
  • kernel
  • laptop
  • miscellaneous
  • mounts
  • multimedia
  • mysql
  • newrelic
  • nfs
  • nginx
  • openssl
  • owncloud-client
  • owncloud
  • phone
  • php
  • postgresql
  • python
  • rabbitmq
  • redis
  • requirements
  • supervisor
  • ufw
  • uwsgi
  • vagrant
  • veracrypt

Add empty meta to roles

Some of the roles cannot be imported using refresh-roles.yml because they are missing a meta/main.yml.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.