Files
@ b757d690af42
Branch filter:
Location: majic-ansible-roles/docs/about.rst
b757d690af42
5.6 KiB
text/prs.fallenstein.rst
MAR-75: Implemented support for specifying additional environment variables for the wsgi_website role. Environment is set-up for both the systemd service and for application admin user. Updated testsite implementation to use it for sample WSGI website.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | About Majic Ansible Roles
=========================
Majic Ansible Roles is a collection of Ansible roles that are used on regular
basis for deployment and maintenance of Majic infrastructure.
The roles are kept as a separate project in hope of making them potentially
useful to wider audience, and for reference purposes.
Roles cover different aspects of infrastructure, such as mail servers, web
servers, web applications etc. The roles are mainly well-suited for smaller
installations.
At the moment, the roles have been written for and tested against **Ansible
1.9.x**.
Roles should work for the most part with **Ansible 2.0.x** and **Ansible
2.1.x**, but due to bugs in those releases they should not be used for
production purposes. Roles are kept forward-compatible as much as possible until
a couple of breaking bugs get fixed in **Ansible 2.x** series. The main blockers
are:
* Inability to use dynamic name handlers (handlers that include variables in
their name).
* Referencing non-existing handlers does not produce error.
* Referencing non-existing tags does not produce error.
Why were these roles created?
-----------------------------
For a long time I have had a couple of Internet-facing servers where I hosted
all the IT infrastructure I needed for my day-to-day life.
This started off with some basic services, like mail and XMPP server, and in
time extended to include a web server, code repository etc.
As the number of services I used grew, I found it more difficult to track
updates and upgrades, let alone test them in reliable way. The biggest problem
in particular was lack of time to properly document all the different things
I've set-up.
Being familiar with some Puppet-based deployments, I've started looking into the
possibility of using a configuration management system. Ansible emerged as
something that I thought would be easy to use, due to its agent-less nature.
Once I passed some basic tutorials and got to know the system a bit, I decided
to start my journey on implementing the different roles, in the way I want them,
that would let me easily set-up my servers (and reinstall them, amongst other
things).
The roles you see within this repository are the fruit of this labour. I hope
you find them useful.
Features
--------
*Majic Ansible Roles* have the following features:
.. warning::
Of course, you may want to take some statements with a pinch of salt, and
possibly attribute them to either delusions of grandeur, or bragging :)
* Emphasis on small, self-hosted deployments.
* Modular role design where possible and where necessary.
* A number of roles covering common set-up of servers, databases, web server,
XMPP server, mail server, and LDAP server.
* Streamlined integration with LDAP server for most of the services.
* Well-documented, with role reference documentation, examples, and test/sample
site.
* Balanced implementation allowing both configurability and ease of deployment.
* Free Software, released under liberal BSD license.
Available roles:
* ``bootstrap`` (for setting-up servers for Ansible use)
* ``common`` (for setting-up basic security, accounts, and configuration on
servers)
* ``database`` (for creating databases to be used for applications)
* ``database_server`` (for deploying a database server, MariaDB)
* ``ldap_client`` (for setting-up LDAP client configuration)
* ``ldap_server`` (for deploying an LDAP server, OpenLDAP)
* ``mail_forwarder`` (for setting-up forwarding of local mails to smart host,
Postfix)
* ``mail_server`` (for deploying Postfix, Dovecot, ClamAV)
* ``php_website`` (for deploying PHP websites)
* ``preseed`` (for preparing Debian preseed files)
* ``prosody`` (for deploying XMPP server, Prosody)
* ``web_server`` (for deploying web server, Nginx)
* ``wsgi_website`` (for deploying WSGI/Python applications)
Support
-------
In case of problems with the roles or provided code, please do not hestitate to
contact the author at **majic-ansible-roles (at) majic.rs**. The project can be
found at:
* https://code.majic.rs/majic-ansible-roles
* https://projects.majic.rs/majic-ansible-roles
License
-------
Majic Ansible Roles is released under terms of *BSD (3-Clause) License*::
Copyright (c) 2015, Branko Majic
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
Neither the name of Branko Majic nor the names of any other
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|