Skip to content
Browse files

Major testing and overhauls

  • Loading branch information...
1 parent 2581686 commit 4d72255f02d4219de1a3109a762350883dd25573 @rocksolidwebdesign committed Mar 14, 2011
View
9 .gitignore
@@ -1,7 +1,6 @@
maverick_cloud/settings.py
+maverick_cloud/.bak
+maverick_cloud/.tarballs
maverick_cloud/conf/gitolite.conf
-maverick_cloud/conf/apache/localhost/public.tar.gz
-maverick_cloud/conf/apache/sites-available.tar.gz
-maverick_cloud/conf/nginx/sites-available.tar.gz
-maverick_cloud/conf/skel.tar.gz
-maverick_cloud/conf/keys/*
+maverick_cloud/conf/gitolite_repos.conf
+*.pyc
View
2 README.rst
@@ -1,6 +1,8 @@
A python script to automatically install and set up a full featured
server including web, mail and git repositories.
+v0.0.1-ALPHA
+
Quick Install::
bash < <( curl http://github.com/rocksolidwebdesign/Ubuntu-Server-In-A-Box/raw/master/download-install )
View
BIN docs/.doctrees/config_dir.doctree
Binary file not shown.
View
BIN docs/.doctrees/environment.pickle
Binary file not shown.
View
BIN docs/.doctrees/index.doctree
Binary file not shown.
View
BIN docs/.doctrees/settings.doctree
Binary file not shown.
View
BIN docs/.doctrees/tasks.doctree
Binary file not shown.
View
180 docs/_sources/config_dir.txt
@@ -1,180 +0,0 @@
-=======================
-Configuration Directory
-=======================
-
-.. _custom-configuration:
-
-Overview
-========
-
-There is some custom stuff going on with the web server
-that's not completely available through the settings file.
-
-You can add your own users and vhosts simply by adding their
-respective files to the configuration directory.
-
-The default config directory is::
-
- conf/maverick_cloud
-
-but you can use your own in, see ``local_config_dir`` in
-:doc:`settings` The idea here is to leave room for future
-distributions and versions and particular user, group and
-vhost layouts.
-
-To do anything more complicated than what is available through
-these config files you'll need to modify the fab tasks themselves
-which you can get a good feel for by reading their descriptive
-overviews here: :doc:`tasks`
-
-.. _config-file-templates:
-
-Config File Templates
----------------------
-
-Most of this config magic is actually achieved through the
-use of some primitive templating with ``sed``
-
-For most (all?) used config files there is a corresponding
-template that includes placeholders for the hostname, so
-you can point this at various different computers and
-just let it go.
-
-.. _apache-vhosts:
-
-Apache
-======
-
-All the vhost files for apache live in the config folder
-
-``conf/maverick_cloud/apache``
-
-The Hosts You Want
-------------------
-Just add your extra vhosts to ``vhost_templates``
-
-There are actually two directories for vhosts here
-
-* ``sites-available`` This is the folder that actually gets copied
-* ``vhost_templates`` These templates are used to generate the actual config files
-
-The ``sites-available`` folder is indeed where the actual vhost
-files are copied from when they're put on the server, however
-this folder is also cleaned out with the clean commands fab clean
-and
-
-The Hosts You Get Already
--------------------------
-* ``default`` Served on the main domain from the setting ``server_domain``
-* ``default-ssl`` SSL Served on the main domain from the setting ``server_domain``
-* ``default-ssl-nginx`` As above but served on 4433, meant to be reverse proxied with nginx
-* ``php_generator`` The PHP script from generatedata.com
-* ``proxy_django`` Django dev server available through ``django.server_domain`` e.g. http://django.mysite.com
-* ``proxy_rails`` Available through ``rails.server_domain`` e.g. http://rails.mysite.com
-
-Toggling Reverse Proxy Mode
----------------------------
-This config is primarily oriented towards
-allowing you to quickly and easily switch
-back and forth between Apache as the primary server
-and Apache being served from behind an Nginx reverse
-proxy.
-
-*TODO: A fab task should probably be added for this.*
-
-You will need to be manually logged in to the remote
-server with root privileges.
-
-Here's how to toggle the reverse proxying:
-
-* Swap the apache ``ports.conf`` symlink
-
- * ``/etc/apache2/ports.master.conf`` Runs everything on ports 80 and 443 for SSL
- * ``/etc/apache2/ports.behind_nginx.conf`` Runs everything on ports 8080 and 4433 for SSL
-
-* Swap the apache ssl vhost
-
- * Choose the relevant option between ``default-ssl`` and
- ``default-ssl-nginx``. *Hint: if you're putting Apache
- behind Nginx then choose default-ssl-nginx.*
-
-* Enable the nginx vhosts
-* Restart Apache
-* Restart Nginx
-
-.. _nginx-vhosts:
-
-Nginx
-=====
-
-Configuration style here is basically identical to :ref:`apache-vhosts`
-
-All the vhost files for nginx live in the config folder
-
-``conf/maverick_cloud/nginx``
-
-The Hosts You Get Already
--------------------------
-* ``proxy_apache`` Pass all requests through to the proper Apache vhost on port 8080
-* ``proxy_apache_ssl`` Runs on SSL and passes all requests through to port 4433
-* ``proxy_wsgi`` Django dev server available through ``django.server_domain`` e.g. http://django.mysite.com
-* ``proxy_passenger`` Available through ``rails.server_domain`` e.g. http://rails.mysite.com
-
-.. _gitolite-pubkeys:
-
-Gitolite
-========
-
-Gitolite is primarily configured from within the settings
-file but your gitolite developers and collaborators won't be
-added to the repos unless their keys are present in the
-``conf/maverick_cloud/keys/gitolite`` dir.
-
-Public keys follow the simple naming convention of the
-person's username with a ``.pub`` ending. Simply gather the
-public keys of your users (or generate them if they don't
-exist, for that matter) and place them in the gitolite
-public keys folder ``conf/maverick_cloud/keys/gitolite``.
-
-.. _user-skeleton:
-
-Custom Prefab Users
-===================
-
-That awesome bash prompt comes from the preconfigured home
-directory skeleton in ``conf/maverick_cloud/skel``
-
-All the files in there are hidden so if the folder looks
-empty to you be sure you're showing hidden files.
-
-This config does two main things
-
-* It tries to accomodate RVM and virtualenv
-* It tries to accomodate extra login specific customizations
-
-The first modification is the addition of a special
-conditional statement surrounding the bulk of the
-``~/.bashrc`` so that the rvm and virtualenv always work
-even for non interactive shells.
-
-This is important if you want future fab tasks to be able to
-make use of your rvm and virtualenv settings.
-
-The second modification consists primarily of the
-``~/.colors_prompts`` and ``~/.bash_prompt file`` both of
-which are included by the ``~/.bashrc`` if they exist.
-
-The ``~/.colors_prompts`` is in fact named clumsily on
-purpose because it does actually contain nothing more than
-code that defines colors and prompts. The colors gives us a
-flavorful and powerful menu from which to build a custom
-prompt if we wish and it comes with two prompts already pre
-built for you, one for regular user accounts and another for
-the root account that makes the entire host string red to
-alert you that you're root in the hopes that this will
-somehow prevent stupid things from happening.
-
-The ``~/.bash_prompt`` file is where you actually choose
-your prompt by setting the ``$PS1`` environment variable and
-just trust me that the separation between prompt generation
-and prompt selection is a good thing.
View
196 docs/_sources/index.txt
@@ -77,13 +77,15 @@ Copy the example settings file as ``settings.py``::
cd quickfab/ubuntu
cp settings.py.sample settings.py
-Customize the settings to your taste, full documentation can be found in :doc:`settings`::
+Customize the settings to your taste (or don't, you can run
+the script as is and it will prompt you for your hostname),
+full documentation can be found in :doc:`settings`::
vim settings.py
Run the main fab task::
- fab setup_all
+ fab setup
Run the clean task to delete your locally cached config files::
@@ -173,9 +175,10 @@ general setup in terms of users and software
* Nginx with some default example vhosts and a few other
simple vhosts for acting as a reverse proxy to Apache and
as proxy to the Django and Rails development servers
-* One deploy user account that can edit all website files
- and who can restart the webserver without a password. this
- user may or may not also have full sudo privileges
+* One deploy user account that pretty much owns everything.s
+ The deploy user can edit all website file and who cans
+ restart the webserver without a password. this user may ors
+ may not also have full sudo privilege s
* One master user account with full sudo privileges
essentially a root equivalent
* A number of web developers who also have shell access to
@@ -184,6 +187,187 @@ general setup in terms of users and software
further limited in their abilities to muck about with
other people's files
+Where's My Stuff?
+=================
+
+-------------------
+Your Web Site Files
+-------------------
+Well, by default your stuff goes into ``/var/www`` because
+that's a pretty standard place, you can however use the
+``webroot_dir`` setting to change this to your liking,
+perhaps to ``/myserver`` or something.
+
+This webroot directory is not really the webroot per say but
+more like the server root which houses the many web roots
+for your various CGI, PHP, Ruby and Python apps.
+
+The Canonical Layout
+--------------------
+There are three main folders corresponding to the thre basic
+different types of apps, PHP (and Perl and CGI), Ruby and
+Python::
+
+ /var/www/apache
+ /var/www/rails
+ /var/www/django
+
+And the idea is that each project is a self contained
+"website" or "virtual host", and that each project has a
+folder for the code and then a subfolder for the public
+files, by default it's called ``public`` oddly enough, so
+that your public users will never be able to stumble in to
+your source code.
+
+PHP Projects
+------------
+Another way of putting this is that the canonical layout
+here goes like this::
+
+ /var/www/<SERVER_TYPE>/<PROJECT_NAME>/public
+
+So for example if we had a PHP web site called
+wonderwidget.com, then the actual PHP files would live in::
+
+ /var/www/apache/wonderwidget.com
+
+And you'd put all your images and stylesheets, e.g. JPEGs
+and CSS files in::
+
+ /var/www/apache/wonderwidget.com/public
+
+-------------
+Ruby Versions
+-------------
+
+This setup installs the standard ruby 1.8 package that
+ships with Ubuntu but it installs the latest rubygems
+from rubygems.org, which provides ``/usr/bin/gem1.8`` and so I
+manually symlink that to ``/usr/bin/gem`` to make life a little
+nicer, so you should be able to sudo gem install foo to
+install gems to the system 1.8 ruby.
+
+By default the system ruby comes with the rails 2.3.8 gem to
+stay compatible with radiant.
+
+The latest ruby 1.9.2 be found in RVM for the deploy user
+along with the latest 3.0 rails. Simply ssh in as the deploy
+user and then run::
+
+ rvm 1.9.2
+ which rails
+
+and that should hopefully satisfy your curiosities. You can
+of course, continue to use rvm as normal to install gemsets
+and other rubies like ``ree`` or what have you.
+
+You can then start a new rails project by doing something
+like this, and this should work for both the system rails
+and the RVM rails::
+
+ cd /var/www/rails
+ rails new wonderwidget
+ cd wonderwidget
+ script/server
+
+Both the system and rvm install use passenger. The system
+install actually uses the passenger gem and custom compiles
+and installs it using ``passenger-install-apache2-module``
+
+Passenger is of course, as usual, still available as a
+standalone binary as ``passenger`` e.g. ::
+
+ passenger start -a 127.0.0.1 -p 3000 -d
+
+Which brings me to
+
+Rails Projects
+--------------
+
+Rails and Django projects don't follow the strict FQDN
+naming scheme that the PHP sites do. This is because having
+those names on the Apache based sites makes it much easier
+to reverse proxy those sites with nginx.
+
+For example if we had a rails web site called rainmaker.com
+then your actual rails project root would be::
+
+ /var/www/rails/rainmaker
+
+And would have contents like::
+
+ /var/www/rails/rainmaker/app/
+ /var/www/rails/rainmaker/config/
+ /var/www/rails/rainmaker/Gemfile
+ /var/www/rails/rainmaker/Rakefile
+
+And you'd put all your images and stylesheets, e.g. JPEGs and CSS files in::
+
+ /var/www/rails/rainmaker.com/public
+
+-------------------
+Python Environments
+-------------------
+
+Ubuntu depends on a minimal python install so python 2.6 is
+already available and that's what we make use of here, we're
+also leveraging the Ubuntu mod_wsgi package for Apache, though
+there's actually a mod_uwsgi package available that's probably
+more recent and up to date be.
+
+The pip that comes with ubuntu is fairly heavily out of date
+and instead of mucking about with attempting an upgrade, we
+just download and install the (hopefully) latest version directly
+from pypi. Pip requires distribute so this is done for distribute
+as well.
+
+Virtualenv along with virtualenvwrapper are then installed
+via pip and the deploy user is given basic virtualenv capabilities
+to run e.g. ``mkvirtualenv`` and ``workon``
+
+Most of the basic necessities for a Django CMS app including
+Django, MySQL and imaging packages are installed via pip
+into the main system. These same packages can be installed
+to a default test environment for Django called ``djangocms_test``
+
+To use this environment simply ssh as the ``deploy`` user
+and run::
+
+ workon djangocms_test
+
+And then you can use ``django-admin.py`` to create yourself
+a Django app and you'll have all the packages you need for
+Django CMS available to be put into your ``INSTALLED_APPS``
+setting::
+
+ cd /var/www/django
+ django-admin.py startproject wonderwidget
+ cd wonderwidget
+ python manage.py runserver
+
+Django Projects
+---------------
+
+Django projects are, here, typically layed out in the exact
+same way as the Rails projects
+
+For example if we had a django web site called
+rainmaker.com, then we'd have some files like::
+
+ /var/www/django/rainmaker/settings.py
+ /var/www/django/rainmaker/urls.py
+ /var/www/django/rainmaker/manage.py
+
+I also prefer to keep a public folder and yet another
+subfolder of the public folder called media and keep all
+frontend assets like images and such in the media folder. I
+know this is redundant and adds an extra level of directory
+structure but, again, this becomes much easier to reverse
+proxy with Apache if we keep it to a single subfolder of
+public.
+
+See my `Django CMS Example on Github <https://github.com/rocksolidwebdesign/Django-CMS-Example>`_
+
.. _package-versions:
Specifically What You Get
@@ -246,7 +430,7 @@ Full Documentation
:maxdepth: 2
settings
- config_dir
+ configuration
tasks
Indices and tables
View
161 docs/_sources/settings.txt
@@ -2,112 +2,141 @@
Settings
========
+.. _web-server:
+
+Web Server
+==========
+``server_hostname``
+ This is pretty much the single most important setting because it's where
+ you're aiming the script. You should aim it at a canonical FQDN like
+ ``foobar.myhost.com``. If you want your website to run on e.g. just
+ ``myhost.com`` that's fine this script installs a default apache host that
+ runs on just the top level domain, so don't set this to just ``myhost.com``
+ or this script will try to run your server directly on ``.com`` and that
+ won't end well.
+
+``server_domain``
+ The top level domain name of the server you'll actually be running so if
+ your hostname is ``rainmaker.wonderwidget.com`` then this setting should
+ be ``wonderwidget.com``.
+
+ The domain will be automatically determined from the hostname so as long as
+ you set a nice canonical FQDN hostname then you don't actually need to set
+ the domain name.
+
+``server_groupname``
+ The unix group name under which the web server runs. You should most likely
+ just leave this setting alone unless you really want your web server to run
+ under something other than the default ``www-data`` group.
+
+``webroot_dir``
+ The root directory for served file to the web this directory will be backed
+ up if it exists and created if it does not exist
+
.. _general:
General
=======
``single_user_mode``
- If you are never going to really have any other users except root
- and the web server user, then choose single_user_mode
+ If you are never going to really have any other users except root and the
+ web server user, then choose single_user_mode
- This will result in only a single extra user, the deploy user
- being created. The deploy user will own and have full access to
- the webroot and vhost config directories and the deploy user
- will have full sudo privileges.
+ This will result in only a single extra user, the deploy user being created.
+ The deploy user will own and have full access to the webroot and vhost
+ config directories and the deploy user will have full sudo privileges.
you can still install other team members in deploy mode
``remote_backup_dir``, ``remote_config_dir``
- These are the commands your deploy user can run, basically
- to allow restarting the web server and other common web
- server related tasks. You should choose a directory
- that does not yet exist for these settings.
+ These are the commands your deploy user can run, basically to allow
+ restarting the web server and other common web server related tasks. You
+ should choose a directory that does not yet exist for these settings.
``local_config_dir``
- This is the path to your server configuration files. these
- files let you customize the resulting server to fit your
- tastes e.g. automatic install of your hosts and users just
- by filling out the config directory. see :doc:`config_dir`
- for an explanation of how these files are used and what
+ This is the path to your server configuration files. these files let you
+ customize the resulting server to fit your tastes e.g. automatic install of
+ your hosts and users just by filling out the config directory. see
+ :doc:`configuration` for an explanation of how these files are used and what
you can do with them.
-.. _web-server:
-
-Web Server
-==========
-``webroot_dir``
- The root directory for served file to the web
- this directory will be backed up if it exists
- and created if it does not exist
-
-``server_domain``
- The top level domain name of the server you'll actually be running
-
-``server_hostname``
- The specific hostname of the server you'll actually be running
-
-``server_groupname``
- The unix group name under which the web server runs
+``local_backup_dir``, ``local_tar_dir``
+ These are the local cache files. I call them cache files because, well, they
+ don't do much except sit there and look all nice and pretty, packaged up for
+ transfer, just waiting to be uploaded. Also none of these files are
+ particularly critical because they're generated from the current configs and
+ can be rebuilt easily with the ``regen_configs`` and ``regen_tarballs``
+ tasks respectively.
+
+``create_missing_shell_keys``, ``create_missing_git_keys``
+ When it comes time to create shell users, usually key pair access is best
+ and gitolite actually forces it so if there aren't any keys for the
+ respective shell or gitolite users in the config dir then if these are set
+ to true (which they are by default) then some keys will be generated
+ using ``ssh-keygen``. The create missing shell keys options is not yet
+ implemented. Only missing git keys are created for now.
.. _user:
User
====
``python_environment_dir``
- The name of the directory where each user will
- store their virtualenvironments
+ The name of the directory where each user will store their
+ virtualenvironments
``main_username``, ``main_password``
- This is your main username - you, the person who will
- be running this fabfile. so for example 'john' or 'mary'
- 'superhacker', 'mrcool' or whatever username you want.
+ This is your main username - you, the person who will be running this
+ fabfile. so for example 'john' or 'mary' 'superhacker', 'mrcool' or whatever
+ username you want.
- If you'r installing via sudo this should be the username
- of the user who has those sudo privileges. for example
- if you're installing to a virtual machine
+ If you'r installing via sudo this should be the usernam of the user who hase
+ those sudo privileges. for exampl if you're installing to a virtual machin e
``deploy_username``, ``deploy_password``
- The deploy user is your "everything web" user. your
- deploy user will own all the files that belong to
- your actual websites, your deploy user will be
- able to restart the web server and add vhosts
- without requiring a password
+ The deploy user is your "everything web" user. your deploy user will own all
+ the files that belong to your actual websites, your deploy user will be able
+ to restart the web server and add vhosts without requiring a password
``team_groupname``, ``team_password``, ``team_users``
- If you have a list of other users, probably
- developers who will need shell accounts then
+ If you have a list of other users, probably developers who will need shell
+ accounts then
``team_sudo_cmds``
- These are the commands your deploy user can run, basically
- to allow restarting the web server and other common web
- server related tasks
+ These are the commands your deploy user can run, basically to allow
+ restarting the web server and other common web server related tasks
``vim_config_tarball``
- If you want a custom vim configuration installed for your
- users, system wide you can use this one, otherwise, you
- could of course put your own in the ``conf/skel`` directory
+ If you want a custom vim configuration installed for your users, system wide
+ you can use this one, otherwise, you could of course put your own in the
+ ``conf/skel`` directory
- If you want your own system wide vim config just point this
- to the URL of a tarball that contains simply a
- ``.vim`` folder and ``.vimrc`` file
+ If you want your own system wide vim config just point this to the URL of a
+ tarball that contains simply a ``.vim`` folder and ``.vimrc`` file
.. _git:
Git Repositories
================
-``gitolite_admin_local_dir``, ``gitolite_admin_user``, ``gitolite_admin_email``
- You will need to checkout the gitolite admin repo
- on to your local computer to add the keys for the deploy
- user so that the deploy user can checkout your projects
- in to your various webroot folders
+``gitolite_admin_local``,
+ You will need to checkout the gitolite admin repo on to your local computer
+ to add the keys for the deploy user so that the deploy user can checkout
+ your projects in to your various webroot folders
+
+``gitolite_admin_name``, ``gitolite_admin_email``
+ These settings are passed to ``git config --global`` temporarily and
+ previous/current settings are saved. After the gitolite server has been
+ initialized the original user's git settings are restored.
+
+``gitolite_admin_user``
+ This will be the filename of the default gitolite administrator's public key
+ when the pub key file is created from the local aka main user's ssh key.
``git_repo_admins``
- usernames of the users who are actually allowed to admin and
- maintain the repositories and who has access to them
+ Usernames of the users who are actually allowed to admin and maintain the
+ repositories and who has access to them
``git_repo_devteam``
- these are your actual developers who will need commit
- access to your repositories
+ These are your actual developers who will need commit access to your
+ repositories
``git_hosted_repos``
- this is your list of git repositories
+ This is your list of git repositories
View
4 docs/_sources/tasks.txt
@@ -45,7 +45,7 @@ themselves.
To get an idea of how to modify these tasks, I would
recommend reading the Task API and then also looking at
-:doc:`config_dir`
+:doc:`configuration`
If you want to for example change the way gitolite or
Apache adds users and vhosts, you'll want to look at the
@@ -74,5 +74,5 @@ Here is the documentation for each fab task that is available
You can of course, also see this list with ``fab --list``
-.. automodule:: quickfab.ubuntu.fabfile
+.. automodule:: maverick_cloud.fabfile
:members:
View
293 docs/config_dir.html
@@ -1,293 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
- <title>Configuration Directory &mdash; Ubuntu Server In A Box v0.0.1 documentation</title>
- <link rel="stylesheet" href="_static/default.css" type="text/css" />
- <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '',
- VERSION: '0.0.1',
- COLLAPSE_INDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true
- };
- </script>
- <script type="text/javascript" src="_static/jquery.js"></script>
- <script type="text/javascript" src="_static/underscore.js"></script>
- <script type="text/javascript" src="_static/doctools.js"></script>
- <link rel="top" title="Ubuntu Server In A Box v0.0.1 documentation" href="index.html" />
- <link rel="next" title="Tasks" href="tasks.html" />
- <link rel="prev" title="Settings" href="settings.html" />
- </head>
- <body>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- accesskey="I">index</a></li>
- <li class="right" >
- <a href="py-modindex.html" title="Python Module Index"
- >modules</a> |</li>
- <li class="right" >
- <a href="tasks.html" title="Tasks"
- accesskey="N">next</a> |</li>
- <li class="right" >
- <a href="settings.html" title="Settings"
- accesskey="P">previous</a> |</li>
- <li><a href="index.html">Ubuntu Server In A Box v0.0.1 documentation</a> &raquo;</li>
- </ul>
- </div>
-
- <div class="document">
- <div class="documentwrapper">
- <div class="bodywrapper">
- <div class="body">
-
- <div class="section" id="configuration-directory">
-<h1>Configuration Directory<a class="headerlink" href="#configuration-directory" title="Permalink to this headline">¶</a></h1>
-<div class="section" id="overview">
-<span id="custom-configuration"></span><h2>Overview<a class="headerlink" href="#overview" title="Permalink to this headline">¶</a></h2>
-<p>There is some custom stuff going on with the web server
-that&#8217;s not completely available through the settings file.</p>
-<p>You can add your own users and vhosts simply by adding their
-respective files to the configuration directory.</p>
-<p>The default config directory is:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="n">conf</span><span class="o">/</span><span class="n">maverick_cloud</span>
-</pre></div>
-</div>
-<p>but you can use your own in, see <tt class="docutils literal"><span class="pre">local_config_dir</span></tt> in
-<a class="reference internal" href="settings.html"><em>Settings</em></a> The idea here is to leave room for future
-distributions and versions and particular user, group and
-vhost layouts.</p>
-<p>To do anything more complicated than what is available through
-these config files you&#8217;ll need to modify the fab tasks themselves
-which you can get a good feel for by reading their descriptive
-overviews here: <a class="reference internal" href="tasks.html"><em>Tasks</em></a></p>
-<div class="section" id="config-file-templates">
-<span id="id1"></span><h3>Config File Templates<a class="headerlink" href="#config-file-templates" title="Permalink to this headline">¶</a></h3>
-<p>Most of this config magic is actually achieved through the
-use of some primitive templating with <tt class="docutils literal"><span class="pre">sed</span></tt></p>
-<p>For most (all?) used config files there is a corresponding
-template that includes placeholders for the hostname, so
-you can point this at various different computers and
-just let it go.</p>
-</div>
-</div>
-<div class="section" id="apache">
-<span id="apache-vhosts"></span><h2>Apache<a class="headerlink" href="#apache" title="Permalink to this headline">¶</a></h2>
-<p>All the vhost files for apache live in the config folder</p>
-<p><tt class="docutils literal"><span class="pre">conf/maverick_cloud/apache</span></tt></p>
-<div class="section" id="the-hosts-you-want">
-<h3>The Hosts You Want<a class="headerlink" href="#the-hosts-you-want" title="Permalink to this headline">¶</a></h3>
-<p>Just add your extra vhosts to <tt class="docutils literal"><span class="pre">vhost_templates</span></tt></p>
-<p>There are actually two directories for vhosts here</p>
-<ul class="simple">
-<li><tt class="docutils literal"><span class="pre">sites-available</span></tt> This is the folder that actually gets copied</li>
-<li><tt class="docutils literal"><span class="pre">vhost_templates</span></tt> These templates are used to generate the actual config files</li>
-</ul>
-<p>The <tt class="docutils literal"><span class="pre">sites-available</span></tt> folder is indeed where the actual vhost
-files are copied from when they&#8217;re put on the server, however
-this folder is also cleaned out with the clean commands fab clean
-and</p>
-</div>
-<div class="section" id="the-hosts-you-get-already">
-<h3>The Hosts You Get Already<a class="headerlink" href="#the-hosts-you-get-already" title="Permalink to this headline">¶</a></h3>
-<ul class="simple">
-<li><tt class="docutils literal"><span class="pre">default</span></tt> Served on the main domain from the setting <tt class="docutils literal"><span class="pre">server_domain</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">default-ssl</span></tt> SSL Served on the main domain from the setting <tt class="docutils literal"><span class="pre">server_domain</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">default-ssl-nginx</span></tt> As above but served on 4433, meant to be reverse proxied with nginx</li>
-<li><tt class="docutils literal"><span class="pre">php_generator</span></tt> The PHP script from generatedata.com</li>
-<li><tt class="docutils literal"><span class="pre">proxy_django</span></tt> Django dev server available through <tt class="docutils literal"><span class="pre">django.server_domain</span></tt> e.g. <a class="reference external" href="http://django.mysite.com">http://django.mysite.com</a></li>
-<li><tt class="docutils literal"><span class="pre">proxy_rails</span></tt> Available through <tt class="docutils literal"><span class="pre">rails.server_domain</span></tt> e.g. <a class="reference external" href="http://rails.mysite.com">http://rails.mysite.com</a></li>
-</ul>
-</div>
-<div class="section" id="toggling-reverse-proxy-mode">
-<h3>Toggling Reverse Proxy Mode<a class="headerlink" href="#toggling-reverse-proxy-mode" title="Permalink to this headline">¶</a></h3>
-<p>This config is primarily oriented towards
-allowing you to quickly and easily switch
-back and forth between Apache as the primary server
-and Apache being served from behind an Nginx reverse
-proxy.</p>
-<p><em>TODO: A fab task should probably be added for this.</em></p>
-<p>You will need to be manually logged in to the remote
-server with root privileges.</p>
-<p>Here&#8217;s how to toggle the reverse proxying:</p>
-<ul>
-<li><p class="first">Swap the apache <tt class="docutils literal"><span class="pre">ports.conf</span></tt> symlink</p>
-<blockquote>
-<div><ul class="simple">
-<li><tt class="docutils literal"><span class="pre">/etc/apache2/ports.master.conf</span></tt> Runs everything on ports 80 and 443 for SSL</li>
-<li><tt class="docutils literal"><span class="pre">/etc/apache2/ports.behind_nginx.conf</span></tt> Runs everything on ports 8080 and 4433 for SSL</li>
-</ul>
-</div></blockquote>
-</li>
-<li><p class="first">Swap the apache ssl vhost</p>
-<blockquote>
-<div><ul class="simple">
-<li>Choose the relevant option between <tt class="docutils literal"><span class="pre">default-ssl</span></tt> and
-<tt class="docutils literal"><span class="pre">default-ssl-nginx</span></tt>. <em>Hint: if you&#8217;re putting Apache
-behind Nginx then choose default-ssl-nginx.</em></li>
-</ul>
-</div></blockquote>
-</li>
-<li><p class="first">Enable the nginx vhosts</p>
-</li>
-<li><p class="first">Restart Apache</p>
-</li>
-<li><p class="first">Restart Nginx</p>
-</li>
-</ul>
-</div>
-</div>
-<div class="section" id="nginx">
-<span id="nginx-vhosts"></span><h2>Nginx<a class="headerlink" href="#nginx" title="Permalink to this headline">¶</a></h2>
-<p>Configuration style here is basically identical to <a class="reference internal" href="#apache-vhosts"><em>Apache</em></a></p>
-<p>All the vhost files for nginx live in the config folder</p>
-<p><tt class="docutils literal"><span class="pre">conf/maverick_cloud/nginx</span></tt></p>
-<div class="section" id="id2">
-<h3>The Hosts You Get Already<a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h3>
-<ul class="simple">
-<li><tt class="docutils literal"><span class="pre">proxy_apache</span></tt> Pass all requests through to the proper Apache vhost on port 8080</li>
-<li><tt class="docutils literal"><span class="pre">proxy_apache_ssl</span></tt> Runs on SSL and passes all requests through to port 4433</li>
-<li><tt class="docutils literal"><span class="pre">proxy_wsgi</span></tt> Django dev server available through <tt class="docutils literal"><span class="pre">django.server_domain</span></tt> e.g. <a class="reference external" href="http://django.mysite.com">http://django.mysite.com</a></li>
-<li><tt class="docutils literal"><span class="pre">proxy_passenger</span></tt> Available through <tt class="docutils literal"><span class="pre">rails.server_domain</span></tt> e.g. <a class="reference external" href="http://rails.mysite.com">http://rails.mysite.com</a></li>
-</ul>
-</div>
-</div>
-<div class="section" id="gitolite">
-<span id="gitolite-pubkeys"></span><h2>Gitolite<a class="headerlink" href="#gitolite" title="Permalink to this headline">¶</a></h2>
-<p>Gitolite is primarily configured from within the settings
-file but your gitolite developers and collaborators won&#8217;t be
-added to the repos unless their keys are present in the
-<tt class="docutils literal"><span class="pre">conf/maverick_cloud/keys/gitolite</span></tt> dir.</p>
-<p>Public keys follow the simple naming convention of the
-person&#8217;s username with a <tt class="docutils literal"><span class="pre">.pub</span></tt> ending. Simply gather the
-public keys of your users (or generate them if they don&#8217;t
-exist, for that matter) and place them in the gitolite
-public keys folder <tt class="docutils literal"><span class="pre">conf/maverick_cloud/keys/gitolite</span></tt>.</p>
-</div>
-<div class="section" id="custom-prefab-users">
-<span id="user-skeleton"></span><h2>Custom Prefab Users<a class="headerlink" href="#custom-prefab-users" title="Permalink to this headline">¶</a></h2>
-<p>That awesome bash prompt comes from the preconfigured home
-directory skeleton in <tt class="docutils literal"><span class="pre">conf/maverick_cloud/skel</span></tt></p>
-<p>All the files in there are hidden so if the folder looks
-empty to you be sure you&#8217;re showing hidden files.</p>
-<p>This config does two main things</p>
-<ul class="simple">
-<li>It tries to accomodate RVM and virtualenv</li>
-<li>It tries to accomodate extra login specific customizations</li>
-</ul>
-<p>The first modification is the addition of a special
-conditional statement surrounding the bulk of the
-<tt class="docutils literal"><span class="pre">~/.bashrc</span></tt> so that the rvm and virtualenv always work
-even for non interactive shells.</p>
-<p>This is important if you want future fab tasks to be able to
-make use of your rvm and virtualenv settings.</p>
-<p>The second modification consists primarily of the
-<tt class="docutils literal"><span class="pre">~/.colors_prompts</span></tt> and <tt class="docutils literal"><span class="pre">~/.bash_prompt</span>&nbsp; <span class="pre">file</span></tt> both of
-which are included by the <tt class="docutils literal"><span class="pre">~/.bashrc</span></tt> if they exist.</p>
-<p>The <tt class="docutils literal"><span class="pre">~/.colors_prompts</span></tt> is in fact named clumsily on
-purpose because it does actually contain nothing more than
-code that defines colors and prompts. The colors gives us a
-flavorful and powerful menu from which to build a custom
-prompt if we wish and it comes with two prompts already pre
-built for you, one for regular user accounts and another for
-the root account that makes the entire host string red to
-alert you that you&#8217;re root in the hopes that this will
-somehow prevent stupid things from happening.</p>
-<p>The <tt class="docutils literal"><span class="pre">~/.bash_prompt</span></tt> file is where you actually choose
-your prompt by setting the <tt class="docutils literal"><span class="pre">$PS1</span></tt> environment variable and
-just trust me that the separation between prompt generation
-and prompt selection is a good thing.</p>
-</div>
-</div>
-
-
- </div>
- </div>
- </div>
- <div class="sphinxsidebar">
- <div class="sphinxsidebarwrapper">
- <h3><a href="index.html">Table Of Contents</a></h3>
- <ul>
-<li><a class="reference internal" href="#">Configuration Directory</a><ul>
-<li><a class="reference internal" href="#overview">Overview</a><ul>
-<li><a class="reference internal" href="#config-file-templates">Config File Templates</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#apache">Apache</a><ul>
-<li><a class="reference internal" href="#the-hosts-you-want">The Hosts You Want</a></li>
-<li><a class="reference internal" href="#the-hosts-you-get-already">The Hosts You Get Already</a></li>
-<li><a class="reference internal" href="#toggling-reverse-proxy-mode">Toggling Reverse Proxy Mode</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#nginx">Nginx</a><ul>
-<li><a class="reference internal" href="#id2">The Hosts You Get Already</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#gitolite">Gitolite</a></li>
-<li><a class="reference internal" href="#custom-prefab-users">Custom Prefab Users</a></li>
-</ul>
-</li>
-</ul>
-
- <h4>Previous topic</h4>
- <p class="topless"><a href="settings.html"
- title="previous chapter">Settings</a></p>
- <h4>Next topic</h4>
- <p class="topless"><a href="tasks.html"
- title="next chapter">Tasks</a></p>
- <h3>This Page</h3>
- <ul class="this-page-menu">
- <li><a href="_sources/config_dir.txt"
- rel="nofollow">Show Source</a></li>
- </ul>
-<div id="searchbox" style="display: none">
- <h3>Quick search</h3>
- <form class="search" action="search.html" method="get">
- <input type="text" name="q" size="18" />
- <input type="submit" value="Go" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- <p class="searchtip" style="font-size: 90%">
- Enter search terms or a module, class or function name.
- </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
- </div>
- </div>
- <div class="clearer"></div>
- </div>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- >index</a></li>
- <li class="right" >
- <a href="py-modindex.html" title="Python Module Index"
- >modules</a> |</li>
- <li class="right" >
- <a href="tasks.html" title="Tasks"
- >next</a> |</li>
- <li class="right" >
- <a href="settings.html" title="Settings"
- >previous</a> |</li>
- <li><a href="index.html">Ubuntu Server In A Box v0.0.1 documentation</a> &raquo;</li>
- </ul>
- </div>
- <div class="footer">
- &copy; Copyright 2011, Vaughn Draughon.
- Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
- </div>
- </body>
-</html>
View
163 docs/genindex.html
@@ -47,147 +47,162 @@
<h1 id="index">Index</h1>
<div class="genindex-jumpbox">
- <a href="#A"><strong>A</strong></a> | <a href="#B"><strong>B</strong></a> | <a href="#C"><strong>C</strong></a> | <a href="#D"><strong>D</strong></a> | <a href="#I"><strong>I</strong></a> | <a href="#Q"><strong>Q</strong></a> | <a href="#R"><strong>R</strong></a> | <a href="#S"><strong>S</strong></a> | <a href="#T"><strong>T</strong></a> | <a href="#U"><strong>U</strong></a>
+ <a href="#A"><strong>A</strong></a> | <a href="#B"><strong>B</strong></a> | <a href="#C"><strong>C</strong></a> | <a href="#D"><strong>D</strong></a> | <a href="#I"><strong>I</strong></a> | <a href="#M"><strong>M</strong></a> | <a href="#R"><strong>R</strong></a> | <a href="#S"><strong>S</strong></a> | <a href="#T"><strong>T</strong></a> | <a href="#U"><strong>U</strong></a>
</div>
<h2 id="A">A</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.a2enmod_proxy">a2enmod_proxy() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.a2enmod_rewrite">a2enmod_rewrite() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.add_custom_user">add_custom_user() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.add_prompt_to_user">add_prompt_to_user() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.aptget_common_headers">aptget_common_headers() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.aptget_compiler">aptget_compiler() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.aptget_databases">aptget_databases() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.aptget_lamp">aptget_lamp() (in module quickfab.ubuntu.fabfile)</a></dt>
-</dl></td>
- <td style="width: 33%" valign="top"><dl>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.aptget_mailserver">aptget_mailserver() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.aptget_misc_utilities">aptget_misc_utilities() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.aptget_mod_wsgi">aptget_mod_wsgi() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.aptget_nginx">aptget_nginx() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.aptget_software_updates">aptget_software_updates() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.aptget_uwsgi">aptget_uwsgi() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.aptget_version_control">aptget_version_control() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.aptget_vim73">aptget_vim73() (in module quickfab.ubuntu.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.a2enmod_passenger">a2enmod_passenger() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.a2enmod_proxy">a2enmod_proxy() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.a2enmod_rewrite">a2enmod_rewrite() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.add_custom_user">add_custom_user() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.add_prompt_to_user">add_prompt_to_user() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.aptget_common_dev_headers">aptget_common_dev_headers() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.aptget_compiler">aptget_compiler() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.aptget_databases">aptget_databases() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.aptget_git_server">aptget_git_server() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.aptget_init">aptget_init() (in module maverick_cloud.fabfile)</a></dt>
+</dl></td>
+ <td style="width: 33%" valign="top"><dl>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.aptget_lamp">aptget_lamp() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.aptget_mail_server">aptget_mail_server() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.aptget_mod_wsgi">aptget_mod_wsgi() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.aptget_nginx">aptget_nginx() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.aptget_passenger">aptget_passenger() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.aptget_ruby">aptget_ruby() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.aptget_software_updates">aptget_software_updates() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.aptget_svn_server">aptget_svn_server() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.aptget_uwsgi">aptget_uwsgi() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.aptget_vim73">aptget_vim73() (in module maverick_cloud.fabfile)</a></dt>
</dl></td>
</tr></table>
<h2 id="B">B</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.backup_apache_config">backup_apache_config() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.backup_nginx_config">backup_nginx_config() (in module quickfab.ubuntu.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.backup_apache_config">backup_apache_config() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.backup_nginx_config">backup_nginx_config() (in module maverick_cloud.fabfile)</a></dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.backup_user_home">backup_user_home() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.backup_webroot">backup_webroot() (in module quickfab.ubuntu.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.backup_user_home">backup_user_home() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.backup_webroot">backup_webroot() (in module maverick_cloud.fabfile)</a></dt>
</dl></td>
</tr></table>
<h2 id="C">C</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.clean">clean() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.clean_all">clean_all() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.clean_etc_skel">clean_etc_skel() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.clean_gitolite">clean_gitolite() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.clean_master_users">clean_master_users() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.clean_remote_backup_dir">clean_remote_backup_dir() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.clean_remote_config_dir">clean_remote_config_dir() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.clean_root_user">clean_root_user() (in module quickfab.ubuntu.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.clean">clean() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.clean_all">clean_all() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.clean_etc_skel">clean_etc_skel() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.clean_gitolite_config">clean_gitolite_config() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.clean_master_users">clean_master_users() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.clean_remote_backup_dir">clean_remote_backup_dir() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.clean_remote_config_dir">clean_remote_config_dir() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.clean_root_user">clean_root_user() (in module maverick_cloud.fabfile)</a></dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.clean_team_sudoers">clean_team_sudoers() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.clean_team_users">clean_team_users() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.clean_vim_config">clean_vim_config() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.clone_root_pubkey">clone_root_pubkey() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.configure_open_share">configure_open_share() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.configure_python_virtualenv">configure_python_virtualenv() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.configure_restricted_share">configure_restricted_share() (in module quickfab.ubuntu.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.clean_team_sudoers">clean_team_sudoers() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.clean_team_users">clean_team_users() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.clean_vim_config">clean_vim_config() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.clone_root_pubkey">clone_root_pubkey() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.configure_open_share">configure_open_share() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.configure_python_virtualenv">configure_python_virtualenv() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.configure_restricted_share">configure_restricted_share() (in module maverick_cloud.fabfile)</a></dt>
</dl></td>
</tr></table>
<h2 id="D">D</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.docs">docs() (in module quickfab.ubuntu.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.docs">docs() (in module maverick_cloud.fabfile)</a></dt>
</dl></td>
</tr></table>
<h2 id="I">I</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.init_root_user">init_root_user() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.init_system">init_system() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.install_apache_config">install_apache_config() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.install_etc_skel">install_etc_skel() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.install_gitolite_config">install_gitolite_config() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.install_master_users">install_master_users() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.install_nginx_config">install_nginx_config() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.install_python_distribute">install_python_distribute() (in module quickfab.ubuntu.fabfile)</a></dt>
-</dl></td>
- <td style="width: 33%" valign="top"><dl>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.install_python_pip">install_python_pip() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.install_python_virtualenv">install_python_virtualenv() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.install_ruby_rvm">install_ruby_rvm() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.install_team_sudoers">install_team_sudoers() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.install_team_users">install_team_users() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.install_vim_config">install_vim_config() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.install_webroot">install_webroot() (in module quickfab.ubuntu.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.init_root_user">init_root_user() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.init_system">init_system() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.install_apache_config">install_apache_config() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.install_env_djangocms">install_env_djangocms() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.install_etc_skel">install_etc_skel() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.install_gitolite_config">install_gitolite_config() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.install_master_users">install_master_users() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.install_mod_passenger_gem">install_mod_passenger_gem() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.install_nginx_config">install_nginx_config() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.install_python_distribute">install_python_distribute() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.install_python_pip">install_python_pip() (in module maverick_cloud.fabfile)</a></dt>
+</dl></td>
+ <td style="width: 33%" valign="top"><dl>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.install_python_virtualenv">install_python_virtualenv() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.install_rails_server">install_rails_server() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.install_rubygems">install_rubygems() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.install_rvm">install_rvm() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.install_rvm_rails_server">install_rvm_rails_server() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.install_sys_djangocms">install_sys_djangocms() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.install_team_sudoers">install_team_sudoers() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.install_team_users">install_team_users() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.install_vim_config">install_vim_config() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.install_webroot">install_webroot() (in module maverick_cloud.fabfile)</a></dt>
</dl></td>
</tr></table>
-<h2 id="Q">Q</h2>
+<h2 id="M">M</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
- <dt><a href="tasks.html#module-quickfab.ubuntu.fabfile">quickfab.ubuntu.fabfile (module)</a></dt>
+ <dt><a href="tasks.html#module-maverick_cloud.fabfile">maverick_cloud.fabfile (module)</a></dt>
</dl></td>
</tr></table>
<h2 id="R">R</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.regen_configs">regen_configs() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.regen_tarballs">regen_tarballs() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.reskel_existing_user">reskel_existing_user() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.restore_apache_config">restore_apache_config() (in module quickfab.ubuntu.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.regen_configs">regen_configs() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.regen_tarball">regen_tarball() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.regen_tarballs">regen_tarballs() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.reskel_existing_user">reskel_existing_user() (in module maverick_cloud.fabfile)</a></dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.restore_nginx_config">restore_nginx_config() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.restore_user_home">restore_user_home() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.restore_webroot">restore_webroot() (in module quickfab.ubuntu.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.restore_apache_config">restore_apache_config() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.restore_nginx_config">restore_nginx_config() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.restore_user_home">restore_user_home() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.restore_webroot">restore_webroot() (in module maverick_cloud.fabfile)</a></dt>
</dl></td>
</tr></table>
<h2 id="S">S</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.setup_all">setup_all() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.setup_packages">setup_packages() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.setup_ruby_python">setup_ruby_python() (in module quickfab.ubuntu.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.select_prompt">select_prompt() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.setup">setup() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.setup_apache">setup_apache() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.setup_git_server">setup_git_server() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.setup_nginx">setup_nginx() (in module maverick_cloud.fabfile)</a></dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.setup_server">setup_server() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.setup_users">setup_users() (in module quickfab.ubuntu.fabfile)</a></dt>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.setup_virtualenv">setup_virtualenv() (in module quickfab.ubuntu.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.setup_python">setup_python() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.setup_ruby">setup_ruby() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.setup_server">setup_server() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.setup_svn_server">setup_svn_server() (in module maverick_cloud.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.setup_users">setup_users() (in module maverick_cloud.fabfile)</a></dt>
</dl></td>
</tr></table>
<h2 id="T">T</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.test_local">test_local() (in module quickfab.ubuntu.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.test_local">test_local() (in module maverick_cloud.fabfile)</a></dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.test_remote">test_remote() (in module quickfab.ubuntu.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.test_remote">test_remote() (in module maverick_cloud.fabfile)</a></dt>
</dl></td>
</tr></table>
<h2 id="U">U</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
- <dt><a href="tasks.html#quickfab.ubuntu.fabfile.upload_website_apache_localhost">upload_website_apache_localhost() (in module quickfab.ubuntu.fabfile)</a></dt>
+ <dt><a href="tasks.html#maverick_cloud.fabfile.upload_website_apache_localhost">upload_website_apache_localhost() (in module maverick_cloud.fabfile)</a></dt>
</dl></td>
</tr></table>
View
197 docs/index.html
@@ -103,11 +103,13 @@
<div class="highlight-python"><pre>cd quickfab/ubuntu
cp settings.py.sample settings.py</pre>
</div>
-<p>Customize the settings to your taste, full documentation can be found in <a class="reference internal" href="settings.html"><em>Settings</em></a>:</p>
+<p>Customize the settings to your taste (or don&#8217;t, you can run
+the script as is and it will prompt you for your hostname),
+full documentation can be found in <a class="reference internal" href="settings.html"><em>Settings</em></a>:</p>
<div class="highlight-python"><pre>vim settings.py</pre>
</div>
<p>Run the main fab task:</p>
-<div class="highlight-python"><pre>fab setup_all</pre>
+<div class="highlight-python"><pre>fab setup</pre>
</div>
<p>Run the clean task to delete your locally cached config files:</p>
<div class="highlight-python"><pre>fab clean</pre>
@@ -178,9 +180,10 @@
<li>Nginx with some default example vhosts and a few other
simple vhosts for acting as a reverse proxy to Apache and
as proxy to the Django and Rails development servers</li>
-<li>One deploy user account that can edit all website files
-and who can restart the webserver without a password. this
-user may or may not also have full sudo privileges</li>
+<li>One deploy user account that pretty much owns everything.s
+The deploy user can edit all website file and who cans
+restart the webserver without a password. this user may ors
+may not also have full sudo privilege s</li>
<li>One master user account with full sudo privileges
essentially a root equivalent</li>
<li>A number of web developers who also have shell access to
@@ -190,6 +193,158 @@
other people&#8217;s files</li>
</ul>
</div>
+<div class="section" id="where-s-my-stuff">
+<h1>Where&#8217;s My Stuff?<a class="headerlink" href="#where-s-my-stuff" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="your-web-site-files">
+<h2>Your Web Site Files<a class="headerlink" href="#your-web-site-files" title="Permalink to this headline">¶</a></h2>
+<p>Well, by default your stuff goes into <tt class="docutils literal"><span class="pre">/var/www</span></tt> because
+that&#8217;s a pretty standard place, you can however use the
+<tt class="docutils literal"><span class="pre">webroot_dir</span></tt> setting to change this to your liking,
+perhaps to <tt class="docutils literal"><span class="pre">/myserver</span></tt> or something.</p>
+<p>This webroot directory is not really the webroot per say but
+more like the server root which houses the many web roots
+for your various CGI, PHP, Ruby and Python apps.</p>
+<div class="section" id="the-canonical-layout">
+<h3>The Canonical Layout<a class="headerlink" href="#the-canonical-layout" title="Permalink to this headline">¶</a></h3>
+<p>There are three main folders corresponding to the thre basic
+different types of apps, PHP (and Perl and CGI), Ruby and
+Python:</p>
+<div class="highlight-python"><pre>/var/www/apache
+/var/www/rails
+/var/www/django</pre>
+</div>
+<p>And the idea is that each project is a self contained
+&#8220;website&#8221; or &#8220;virtual host&#8221;, and that each project has a
+folder for the code and then a subfolder for the public
+files, by default it&#8217;s called <tt class="docutils literal"><span class="pre">public</span></tt> oddly enough, so
+that your public users will never be able to stumble in to
+your source code.</p>
+</div>
+<div class="section" id="php-projects">
+<h3>PHP Projects<a class="headerlink" href="#php-projects" title="Permalink to this headline">¶</a></h3>
+<p>Another way of putting this is that the canonical layout
+here goes like this:</p>
+<div class="highlight-python"><pre>/var/www/&lt;SERVER_TYPE&gt;/&lt;PROJECT_NAME&gt;/public</pre>
+</div>
+<p>So for example if we had a PHP web site called
+wonderwidget.com, then the actual PHP files would live in:</p>
+<div class="highlight-python"><pre>/var/www/apache/wonderwidget.com</pre>
+</div>
+<p>And you&#8217;d put all your images and stylesheets, e.g. JPEGs
+and CSS files in:</p>
+<div class="highlight-python"><pre>/var/www/apache/wonderwidget.com/public</pre>
+</div>
+</div>
+</div>
+<div class="section" id="ruby-versions">
+<h2>Ruby Versions<a class="headerlink" href="#ruby-versions" title="Permalink to this headline">¶</a></h2>
+<p>This setup installs the standard ruby 1.8 package that
+ships with Ubuntu but it installs the latest rubygems
+from rubygems.org, which provides <tt class="docutils literal"><span class="pre">/usr/bin/gem1.8</span></tt> and so I
+manually symlink that to <tt class="docutils literal"><span class="pre">/usr/bin/gem</span></tt> to make life a little
+nicer, so you should be able to sudo gem install foo to
+install gems to the system 1.8 ruby.</p>
+<p>By default the system ruby comes with the rails 2.3.8 gem to
+stay compatible with radiant.</p>
+<p>The latest ruby 1.9.2 be found in RVM for the deploy user
+along with the latest 3.0 rails. Simply ssh in as the deploy
+user and then run:</p>
+<div class="highlight-python"><pre>rvm 1.9.2
+which rails</pre>
+</div>
+<p>and that should hopefully satisfy your curiosities. You can
+of course, continue to use rvm as normal to install gemsets
+and other rubies like <tt class="docutils literal"><span class="pre">ree</span></tt> or what have you.</p>
+<p>You can then start a new rails project by doing something
+like this, and this should work for both the system rails
+and the RVM rails:</p>
+<div class="highlight-python"><pre>cd /var/www/rails
+rails new wonderwidget
+cd wonderwidget
+script/server</pre>
+</div>
+<p>Both the system and rvm install use passenger. The system
+install actually uses the passenger gem and custom compiles
+and installs it using <tt class="docutils literal"><span class="pre">passenger-install-apache2-module</span></tt></p>
+<p>Passenger is of course, as usual, still available as a
+standalone binary as <tt class="docutils literal"><span class="pre">passenger</span></tt> e.g.</p>
+<div class="highlight-python"><pre>passenger start -a 127.0.0.1 -p 3000 -d</pre>
+</div>
+<p>Which brings me to</p>
+<div class="section" id="rails-projects">
+<h3>Rails Projects<a class="headerlink" href="#rails-projects" title="Permalink to this headline">¶</a></h3>
+<p>Rails and Django projects don&#8217;t follow the strict FQDN
+naming scheme that the PHP sites do. This is because having
+those names on the Apache based sites makes it much easier
+to reverse proxy those sites with nginx.</p>
+<p>For example if we had a rails web site called rainmaker.com
+then your actual rails project root would be:</p>
+<div class="highlight-python"><pre>/var/www/rails/rainmaker</pre>
+</div>
+<p>And would have contents like:</p>
+<div class="highlight-python"><pre>/var/www/rails/rainmaker/app/
+/var/www/rails/rainmaker/config/
+/var/www/rails/rainmaker/Gemfile
+/var/www/rails/rainmaker/Rakefile</pre>
+</div>
+<p>And you&#8217;d put all your images and stylesheets, e.g. JPEGs and CSS files in:</p>
+<div class="highlight-python"><pre>/var/www/rails/rainmaker.com/public</pre>
+</div>
+</div>
+</div>
+<div class="section" id="python-environments">
+<h2>Python Environments<a class="headerlink" href="#python-environments" title="Permalink to this headline">¶</a></h2>
+<p>Ubuntu depends on a minimal python install so python 2.6 is
+already available and that&#8217;s what we make use of here, we&#8217;re
+also leveraging the Ubuntu mod_wsgi package for Apache, though
+there&#8217;s actually a mod_uwsgi package available that&#8217;s probably
+more recent and up to date be.</p>
+<p>The pip that comes with ubuntu is fairly heavily out of date
+and instead of mucking about with attempting an upgrade, we
+just download and install the (hopefully) latest version directly
+from pypi. Pip requires distribute so this is done for distribute
+as well.</p>
+<p>Virtualenv along with virtualenvwrapper are then installed
+via pip and the deploy user is given basic virtualenv capabilities
+to run e.g. <tt class="docutils literal"><span class="pre">mkvirtualenv</span></tt> and <tt class="docutils literal"><span class="pre">workon</span></tt></p>
+<p>Most of the basic necessities for a Django CMS app including
+Django, MySQL and imaging packages are installed via pip
+into the main system. These same packages can be installed
+to a default test environment for Django called <tt class="docutils literal"><span class="pre">djangocms_test</span></tt></p>
+<p>To use this environment simply ssh as the <tt class="docutils literal"><span class="pre">deploy</span></tt> user
+and run:</p>
+<div class="highlight-python"><pre>workon djangocms_test</pre>
+</div>
+<p>And then you can use <tt class="docutils literal"><span class="pre">django-admin.py</span></tt> to create yourself
+a Django app and you&#8217;ll have all the packages you need for
+Django CMS available to be put into your <tt class="docutils literal"><span class="pre">INSTALLED_APPS</span></tt>
+setting:</p>
+<div class="highlight-python"><pre>cd /var/www/django
+django-admin.py startproject wonderwidget
+cd wonderwidget
+python manage.py runserver</pre>
+</div>
+<div class="section" id="django-projects">
+<h3>Django Projects<a class="headerlink" href="#django-projects" title="Permalink to this headline">¶</a></h3>
+<p>Django projects are, here, typically layed out in the exact
+same way as the Rails projects</p>
+<p>For example if we had a django web site called
+rainmaker.com, then we&#8217;d have some files like:</p>
+<div class="highlight-python"><pre>/var/www/django/rainmaker/settings.py
+/var/www/django/rainmaker/urls.py
+/var/www/django/rainmaker/manage.py</pre>
+</div>
+<p>I also prefer to keep a public folder and yet another
+subfolder of the public folder called media and keep all
+frontend assets like images and such in the media folder. I
+know this is redundant and adds an extra level of directory
+structure but, again, this becomes much easier to reverse
+proxy with Apache if we keep it to a single subfolder of
+public.</p>
+<p>See my <a class="reference external" href="https://github.com/rocksolidwebdesign/Django-CMS-Example">Django CMS Example on Github</a></p>
+</div>
+</div>
+</div>
<div class="section" id="specifically-what-you-get">
<span id="package-versions"></span><h1>Specifically What You Get<a class="headerlink" href="#specifically-what-you-get" title="Permalink to this headline">¶</a></h1>
<p>A basic LAMP setup</p>
@@ -241,18 +396,20 @@
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="settings.html">Settings</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="settings.html#general">General</a></li>
<li class="toctree-l2"><a class="reference internal" href="settings.html#web-server">Web Server</a></li>
+<li class="toctree-l2"><a class="reference internal" href="settings.html#general">General</a></li>
<li class="toctree-l2"><a class="reference internal" href="settings.html#user">User</a></li>
<li class="toctree-l2"><a class="reference internal" href="settings.html#git-repositories">Git Repositories</a></li>
</ul>
</li>
-<li class="toctree-l1"><a class="reference internal" href="config_dir.html">Configuration Directory</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="config_dir.html#overview">Overview</a></li>
-<li class="toctree-l2"><a class="reference internal" href="config_dir.html#apache">Apache</a></li>
-<li class="toctree-l2"><a class="reference internal" href="config_dir.html#nginx">Nginx</a></li>
-<li class="toctree-l2"><a class="reference internal" href="config_dir.html#gitolite">Gitolite</a></li>
-<li class="toctree-l2"><a class="reference internal" href="config_dir.html#custom-prefab-users">Custom Prefab Users</a></li>
+<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="configuration.html#basic-project-layout">Basic Project Layout</a></li>
+<li class="toctree-l2"><a class="reference internal" href="configuration.html#overview">Overview</a></li>
+<li class="toctree-l2"><a class="reference internal" href="configuration.html#apache">Apache</a></li>
+<li class="toctree-l2"><a class="reference internal" href="configuration.html#nginx">Nginx</a></li>
+<li class="toctree-l2"><a class="reference internal" href="configuration.html#gitolite">Gitolite</a></li>
+<li class="toctree-l2"><a class="reference internal" href="configuration.html#custom-prefab-users">Custom Prefab Users</a></li>
+<li class="toctree-l2"><a class="reference internal" href="configuration.html#writing-documentation">Writing Documentation</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="tasks.html">Tasks</a><ul>
@@ -289,6 +446,22 @@
<li><a class="reference internal" href="#complete-install-instructions">Complete Install Instructions</a></li>
<li><a class="reference internal" href="#what-it-does">What It Does</a></li>
<li><a class="reference internal" href="#what-you-get">What You Get</a></li>
+<li><a class="reference internal" href="#where-s-my-stuff">Where&#8217;s My Stuff?</a><ul>
+<li><a class="reference internal" href="#your-web-site-files">Your Web Site Files</a><ul>
+<li><a class="reference internal" href="#the-canonical-layout">The Canonical Layout</a></li>
+<li><a class="reference internal" href="#php-projects">PHP Projects</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#ruby-versions">Ruby Versions</a><ul>
+<li><a class="reference internal" href="#rails-projects">Rails Projects</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#python-environments">Python Environments</a><ul>
+<li><a class="reference internal" href="#django-projects">Django Projects</a></li>
+</ul>
+</li>
+</ul>
+</li>
<li><a class="reference internal" href="#specifically-what-you-get">Specifically What You Get</a></li>
<li><a class="reference internal" href="#using-a-virtual-machine">Using a Virtual Machine</a></li>
<li><a class="reference internal" href="#full-documentation">Full Documentation</a><ul>
View
BIN docs/objects.inv
Binary file not shown.
View
10 docs/py-modindex.html
@@ -50,23 +50,23 @@
<h1>Python Module Index</h1>
<div class="modindex-jumpbox">
- <a href="#cap-q"><strong>q</strong></a>
+ <a href="#cap-m"><strong>m</strong></a>
</div>
<table class="indextable modindextable" cellspacing="0" cellpadding="2">
<tr class="pcap"><td></td><td>&nbsp;</td><td></td></tr>
- <tr class="cap" id="cap-q"><td></td><td>
- <strong>q</strong></td><td></td></tr>
+ <tr class="cap" id="cap-m"><td></td><td>
+ <strong>m</strong></td><td></td></tr>
<tr>
<td><img src="_static/minus.png" class="toggler"
id="toggle-1" style="display: none" alt="-" /></td>
<td>
- <tt class="xref">quickfab</tt></td><td>
+ <tt class="xref">maverick_cloud</tt></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&nbsp;&nbsp;&nbsp;
- <a href="tasks.html#module-quickfab.ubuntu.fabfile"><tt class="xref">quickfab.ubuntu.fabfile</tt></a></td><td>
+ <a href="tasks.html#module-maverick_cloud.fabfile"><tt class="xref">maverick_cloud.fabfile</tt></a></td><td>
<em></em></td></tr>
</table>
View
2 docs/searchindex.js
@@ -1 +1 @@
-Search.setIndex({objects:{"quickfab.ubuntu":{fabfile:[1,0,1]},"quickfab.ubuntu.fabfile":{aptget_version_control:[1,1,1],configure_open_share:[1,1,1],setup_server:[1,1,1],configure_restricted_share:[1,1,1],aptget_common_headers:[1,1,1],backup_user_home:[1,1,1],aptget_software_updates:[1,1,1],clean_gitolite:[1,1,1],clean_vim_config:[1,1,1],aptget_vim73:[1,1,1],clean_root_user:[1,1,1],clean_remote_backup_dir:[1,1,1],setup_ruby_python:[1,1,1],clean_etc_skel:[1,1,1],install_python_virtualenv:[1,1,1],clean_master_users:[1,1,1],install_gitolite_config:[1,1,1],aptget_uwsgi:[1,1,1],install_apache_config:[1,1,1],aptget_lamp:[1,1,1],install_python_pip:[1,1,1],init_root_user:[1,1,1],aptget_compiler:[1,1,1],install_webroot:[1,1,1],clone_root_pubkey:[1,1,1],clean_remote_config_dir:[1,1,1],install_ruby_rvm:[1,1,1],a2enmod_proxy:[1,1,1],setup_all:[1,1,1],aptget_misc_utilities:[1,1,1],restore_user_home:[1,1,1],init_system:[1,1,1],clean_all:[1,1,1],backup_nginx_config:[1,1,1],backup_apache_config:[1,1,1],setup_users:[1,1,1],regen_configs:[1,1,1],clean_team_sudoers:[1,1,1],clean_team_users:[1,1,1],clean:[1,1,1],install_vim_config:[1,1,1],docs:[1,1,1],aptget_mailserver:[1,1,1],install_master_users:[1,1,1],regen_tarballs:[1,1,1],upload_website_apache_localhost:[1,1,1],install_team_users:[1,1,1],install_python_distribute:[1,1,1],aptget_nginx:[1,1,1],restore_apache_config:[1,1,1],aptget_mod_wsgi:[1,1,1],setup_packages:[1,1,1],install_etc_skel:[1,1,1],add_custom_user:[1,1,1],install_team_sudoers:[1,1,1],restore_nginx_config:[1,1,1],test_remote:[1,1,1],setup_virtualenv:[1,1,1],configure_python_virtualenv:[1,1,1],install_nginx_config:[1,1,1],backup_webroot:[1,1,1],aptget_databases:[1,1,1],restore_webroot:[1,1,1],test_local:[1,1,1],a2enmod_rewrite:[1,1,1],reskel_existing_user:[1,1,1],add_prompt_to_user:[1,1,1]}},terms:{all:[0,1,2,3],code:2,skeleton:[1,2],chain:0,scratch:1,aptget_version_control:1,abil:0,follow:[0,1,2],install_python_virtualenv:1,depend:1,specif:[0,1,2,3],swap:2,under:3,reskel_existing_us:1,cgi:1,virtualenviron:3,adapt:1,liter:0,string:2,far:0,none:1,util:1,veri:1,relev:2,cool:1,tri:[1,2],prod:0,magic:2,administr:1,level:3,team_password:3,webmast:1,restor:1,list:[0,1,3],upload:1,"try":[0,1],red:2,team:[0,1,3],quick:0,dir:[1,2],pleas:0,prevent:2,clean_vim_config:1,git_repo_devteam:3,webdav:0,encourag:[0,1],second:2,accomod:2,pass:2,download:[0,1],further:0,clean_remote_backup_dir:1,port:[1,2],even:[0,1,2],index:[0,1],what:[0,1,2,3],proxy_apache_ssl:2,section:1,abl:[0,1,2,3],proxy_django:2,rackspac:[0,1],delet:[0,1],version:[0,1,2],run:[0,1,2,3],"new":[0,1],"public":[1,2],git_hosted_repo:[1,3],whatev:3,full:[0,3],themselv:[1,2],abov:2,gener:[0,1,2,3],never:[1,3],here:[0,1,2],modular:1,let:[2,3],ubuntu:[0,1],path:3,along:[0,1],modifi:[1,2],sinc:1,box:[0,1],search:0,initiali:1,mysit:2,local_config_dir:[2,3],prior:1,base:[0,1],chang:[0,1],commonli:1,privilig:1,whatnot:0,via:3,extra:[1,2,3],primit:2,modul:[0,1],prefer:1,gitolit:[0,1,2,3],apt:[0,1],vim:[0,1,3],invas:1,unix:3,api:[0,1],instal:[0,1,3],txt:0,select:2,highli:1,httpd:0,from:[0,1,2],would:[0,1],behind_nginx:2,next:0,websit:[0,3],few:[0,1],live:2,call:1,recommend:1,checkout:3,toggl:2,more:[0,1,2],colors_prompt:2,desir:1,peopl:[0,1],relat:[0,1,3],indic:0,particular:[1,2],known:0,actual:[0,1,2,3],ventur:[0,1],cach:0,placehold:2,account:[0,1,2,3],ubuntucloud:0,retriev:0,room:2,gitolite_admin_us:3,setup:[0,1],outlin:1,dev:[0,1,2],backup_user_hom:1,paragraph:1,can:[0,1,2,3],purpos:2,root:[0,1,2,3],sqlite:[0,1],prompt:[1,2],tar:1,give:[0,1,2],sudo:[0,3],smtp:0,templat:[1,2],magento:1,want:[0,1,2,3],tarbal:[1,3],alwai:[1,2],cours:[1,3],multipl:[0,1],freshli:1,secur:[0,1],anoth:[1,2],write:1,how:[0,1,2,3],lamp:0,env:1,place:2,config:[0,1,2,3],aptget_software_upd:1,updat:1,regener:1,product:0,watch:1,clone:[0,1],after:1,clean_team_sudo:1,befor:0,goodi:0,mai:[0,1],end:2,git_repo_admin:3,github:0,essenti:0,postfix:0,bootstrap:1,mycorp:1,correspond:[1,2],django:[0,1,2],webroot:[0,1,3],"switch":[1,2],maintain:3,environ:[1,2],allow:[1,2,3],origin:1,help:0,clumsili:2,becaus:[0,1,2],mrcool:3,fab:[0,1,2],through:[0,2],same:1,still:3,paramet:1,aptget_common_head:1,style:2,group:[1,2,3],fit:3,better:0,home_us:1,restart:[0,1,2,3],comprehens:1,mail:1,hidden:2,main:[0,1,2,3],might:1,them:[1,2,3],good:[0,1,2],thei:[1,2],python:[0,1],timestamp:1,handi:[0,1],initi:[0,1],upload_website_apache_localhost:1,compound:1,aka:1,now:[0,1],term:0,somewher:0,name:[0,1,2,3],anyth:[1,2],edit:[0,1],simpl:[0,1,2],revers:[0,1,2],separ:2,easili:2,achiev:2,clean_root_us:1,mode:[2,3],each:[1,3],found:0,vim_config_tarbal:3,compil:1,domain:[0,2,3],proxy_apach:2,idea:[1,2],realli:[1,3],connect:1,our:1,happen:2,patch:1,todo:2,orient:2,special:2,out:[0,2,3],variabl:[1,2],network:0,alwa:1,content:1,rewrit:1,stupid:2,suitabl:[0,1],explan:[0,3],internet:0,got:1,forth:2,uwsgi:1,common:[1,3],postgr:1,install_:1,proxi:[0,1,2],advanc:1,differ:[0,1,2],pub:2,standard:1,test_loc:1,setup_serv:1,org:[0,1],alert:2,bash:[0,2],basi:1,prefab:[0,2],argument:1,could:[0,3],put:[1,2,3],keep:1,thing:[1,2],enforc:1,yum:1,outsid:[0,1],top:3,first:[0,2],pristin:1,softwar:[0,1],aptget_misc_util:1,feel:[0,2],arrai:1,number:[0,1],echo:1,instruct:0,alreadi:[1,2],done:[0,1],least:[0,1],blank:1,deploy_usernam:3,primari:2,fanci:1,given:1,aptget_uwsgi:1,convent:[1,2],script:[0,1,2],interact:2,system:[0,1,3],wrapper:1,vhost_templ:[1,2],remote_backup_dir:[1,3],necessarili:1,ton:1,statement:2,similarli:0,install_team_sudo:1,master:[0,1,2],john:3,store:3,server_hostnam:3,shell:[0,1,2,3],yourrootpasswordher:0,option:2,install_vim_config:1,tool:1,copi:[0,1,2],setuptool:1,specifi:0,provid:1,part:1,somehost:0,than:[0,1,2],serv:[2,3],wide:[1,3],kind:1,conveni:1,remot:[1,2],remov:1,structur:1,project:[0,1,3],matter:2,mkvirtualenv:1,toward:2,pre:2,comput:[2,3],php_gener:2,ani:[0,1,3],install_gitolite_config:1,raw:0,have:[0,1,3],tabl:0,need:[0,1,2,3],turn:1,probabl:[0,1,2,3],built:[1,2],equival:0,self:1,install_webroot:1,also:[0,1,2],ideal:0,exampl:[0,1,3],build:[1,2],which:[1,2,3],exuberr:1,noth:2,singl:[0,1,3],generatedata:2,begin:1,sure:2,unless:2,distribut:[1,2],deploy:0,usernam:[0,2,3],who:[0,3],most:[0,1,2],test_remot:1,regular:[0,2],plan:0,deploi:[0,1,3],aptget_compil:1,don:[0,1,2],cloudfab:0,url:3,doc:[0,1],gather:2,request:2,doe:[0,2,3],inde:2,clean:[0,1,2],fact:[0,2],ctag:1,wsgi:1,mostli:1,show:2,passw:1,session:0,permiss:1,sasl:0,xml:1,current:[0,1],onli:[0,1,3],locat:1,menu:2,configur:[0,1,2,3],releas:0,enough:[0,1],should:[0,1,2,3],busi:0,folder:[1,2,3],local:[0,1,3],over:[0,1],hope:2,meant:[1,2],variou:[1,2,3],get:[0,1,2],express:1,stop:1,a2enmod_rewrit:1,pop3:0,ssl:2,ssh:1,install_python_distribut:1,report:1,regen_config:1,requir:[0,1,3],layout:[1,2],maverick_cloud:2,remote_config_dir:[1,3],enabl:[1,2],sudoer:1,method:1,install_nginx_config:1,stuff:[1,2],add_prompt_to_us:1,though:0,contain:[2,3],privileg:[0,1,2,3],where:[1,2,3],configure_restricted_shar:1,set:[0,1,2,3],mysql:[0,1],configure_open_shar:1,bash_prompt:2,see:[0,1,2,3],sed:2,bare:1,result:3,quickfab:[0,1],best:0,aptget_databas:1,aptget_lamp:1,databas:[0,1],someth:0,gitolite_admin_email:3,yet:[0,1,3],state:1,won:2,between:[1,2],"import":2,email:0,kei:[1,2,3],thundercloud:1,clone_root_pubkei:1,aptget_mailserv:1,extens:1,entir:[1,2],fabfil:[0,1,3],otherwis:[0,3],deploy_password:3,come:[0,1,2],addit:2,both:[1,2],vimrc:3,easi:0,admin:[0,1,3],howev:[0,1,2],etc:[1,2],instanc:0,present:2,restore_webroot:1,modif:2,share:1,com:[0,2],team_sudo_cmd:3,simpli:[2,3],point:[2,3],color:2,overview:[0,1,2],restore_user_hom:1,superhack:3,non:2,respect:[1,2],trust:2,late:1,coupl:1,three:1,empti:2,muck:0,skel:[1,2,3],basic:[0,1,2,3],quickli:2,clean_gitolit:1,install_master_us:1,capabilit:1,imag:1,rubi:[0,1],apach:[0,1,2],bulk:2,rocksolidwebdesign:0,understand:0,togeth:1,install_etc_skel:1,imap:0,those:[1,3],"case":1,setup_al:[0,1],ident:2,look:[1,2],packag:[0,1],awesom:[1,2],install_team_us:1,aim:0,defin:[0,2],publicli:1,exist:[1,2,3],add_custom_us:1,team_us:3,readi:0,site:[1,2],conf:[1,2,3],install_ruby_rvm:1,par:1,develop:[0,1,2,3],make:[1,2],belong:3,dyndn:1,member:[0,1,3],clean_remote_config_dir:1,html:0,split:1,document:[0,1],backup_apache_config:1,complet:[0,2],http:[0,2],hostnam:[0,2,3],rail:[0,1,2],hand:1,fairli:[0,1],user:[0,1,2,3],ownership:1,php:[0,1,2],login:[1,2],recent:[0,1],task:[0,1,2,3],whole:1,well:0,person:[2,3],without:[0,3],command:[2,3],thi:[0,1,2,3],choos:[2,3],everyth:[2,3],tast:[0,3],install_python_pip:1,latest:1,regen_:1,just:[0,1,2,3],less:1,when:[0,1,2],collabor:2,sampl:[0,1],behind:[1,2],flavor:2,ps1:2,aptget_mod_wsgi:1,clean_team_us:1,setup_ruby_python:1,previous:0,web:[0,1,2,3],install_apache_config:1,hint:2,pubkei:1,except:3,littl:1,apache2:2,add:[0,1,2,3],other:[0,1,3],dovecot:0,explanatori:1,app:1,take:1,team_groupnam:3,applic:1,around:1,mayb:1,read:[1,2],webroot_dir:3,nginx:[0,1,2],setup_:1,tmux:1,init_system:1,init_root_us:1,password:[0,1,3],recurs:1,mod:1,measur:0,instead:1,like:[0,1],semi:0,header:1,python_environment_dir:3,manual:2,test_:1,server:[0,1,2,3],backup_webroot:1,necessari:1,single_user_mod:[1,3],page:0,two:[0,1,2],didn:0,old:0,setup_virtualenv:1,webserv:[0,1],some:[0,1,2],somehow:2,proxy_rail:2,aptget_vim73:1,proper:[1,2],home:[1,2],restore_:1,virtualenv:[0,1,2],avoid:1,phpinfo:1,per:1,passwd:0,leav:2,cloud:0,condit:2,backup_nginx_config:1,complic:[1,2],localhost:1,clean_:1,plu:1,clean_master_us:1,workgroup:1,power:2,usag:0,symlink:[1,2],cumbersom:1,vhost:[0,1,2,3],host:[0,1,2,3],colleg:0,repositori:[0,1,3],fulli:0,main_usernam:3,stage:0,necess:1,about:0,postgresql:0,slightli:1,surround:2,manag:1,act:0,commit:3,backup:1,own:[1,2,3],primarili:2,within:2,bashrc:[1,2],easy_instal:0,automat:[0,1,3],mari:3,right:1,subvers:[0,1],your:[0,1,2,3],git:[0,1,3],fabric:0,wai:1,aren:1,support:0,question:1,custom:[0,1,2,3],avail:[0,1,2],start:[0,1],includ:[0,1,2],backup_:1,suit:1,strictli:1,gitolite_admin_local_dir:3,machin:[0,3],"function":1,powerfulli:1,form:1,proxy_passeng:2,continu:0,restore_apache_config:1,uninstal:1,eas:1,"true":1,server_domain:[2,3],info:1,made:1,consist:2,possibl:[0,1],"default":[0,1,2],wish:[0,1,2],access:[0,1,3],configure_python_virtualenv:1,preconfigur:[1,2],limit:[0,1],target_host:1,sort:1,creat:[1,3],rvm:[0,1,2],main_password:3,file:[0,1,2,3],pip:[0,1],curl:0,work:[0,1,2],fill:3,clean_etc_skel:1,a2enmod_proxi:1,titl:1,regen_tarbal:1,virtual:[0,1,3],setup_us:1,valid:1,futur:[0,2],aptget_:1,test:[0,1],you:[0,1,2,3],clean_al:1,repeat:1,intend:0,aptget_nginx:1,repo:[1,2,3],workon:1,formatt:1,log:[0,1,2],fresh:1,restore_nginx_config:1,sphinx:1,longer:0,directori:[0,1,2,3],descript:2,proxy_wsgi:2,gracefulli:1,back:[1,2,3],time:[0,1],server_groupnam:3,setup_packag:1},objtypes:{"0":"py:module","1":"py:function"},titles:["Ubuntu Server In A Box Fabfile","Tasks","Configuration Directory","Settings"],objnames:{"0":"Python module","1":"Python function"},filenames:["index","tasks","config_dir","settings"]})
+Search.setIndex({objects:{maverick_cloud:{fabfile:[1,0,1]},"maverick_cloud.fabfile":{setup_apache:[1,1,1],init_root_user:[1,1,1],setup_server:[1,1,1],configure_restricted_share:[1,1,1],regen_configs:[1,1,1],aptget_software_updates:[1,1,1],install_gitolite_config:[1,1,1],install_mod_passenger_gem:[1,1,1],install_master_users:[1,1,1],aptget_vim73:[1,1,1],clean_root_user:[1,1,1],clean_remote_backup_dir:[1,1,1],regen_tarball:[1,1,1],aptget_ruby:[1,1,1],clean_etc_skel:[1,1,1],install_python_virtualenv:[1,1,1],clean_vim_config:[1,1,1],aptget_uwsgi:[1,1,1],aptget_nginx:[1,1,1],install_rails_server:[1,1,1],restore_webroot:[1,1,1],install_python_pip:[1,1,1],install_rvm_rails_server:[1,1,1],install_webroot:[1,1,1],aptget_init:[1,1,1],clone_root_pubkey:[1,1,1],clean_remote_config_dir:[1,1,1],backup_webroot:[1,1,1],a2enmod_proxy:[1,1,1],add_custom_user:[1,1,1],restore_user_home:[1,1,1],restore_apache_config:[1,1,1],clean_all:[1,1,1],backup_nginx_config:[1,1,1],setup_python:[1,1,1],setup_nginx:[1,1,1],setup_users:[1,1,1],backup_user_home:[1,1,1],clean_team_sudoers:[1,1,1],clean_team_users:[1,1,1],test_local:[1,1,1],install_vim_config:[1,1,1],install_env_djangocms:[1,1,1],docs:[1,1,1],install_sys_djangocms:[1,1,1],regen_tarballs:[1,1,1],upload_website_apache_localhost:[1,1,1],install_team_users:[1,1,1],install_python_distribute:[1,1,1],aptget_common_dev_headers:[1,1,1],aptget_svn_server:[1,1,1],aptget_mail_server:[1,1,1],init_system:[1,1,1],aptget_mod_wsgi:[1,1,1],configure_open_share:[1,1,1],clean_master_users:[1,1,1],install_etc_skel:[1,1,1],install_rvm:[1,1,1],aptget_compiler:[1,1,1],install_team_sudoers:[1,1,1],restore_nginx_config:[1,1,1],setup_git_server:[1,1,1],aptget_git_server:[1,1,1],install_apache_config:[1,1,1],test_remote:[1,1,1],setup_ruby:[1,1,1],backup_apache_config:[1,1,1],setup:[1,1,1],a2enmod_passenger:[1,1,1],configure_python_virtualenv:[1,1,1],install_nginx_config:[1,1,1],clean_gitolite_config:[1,1,1],aptget_databases:[1,1,1],add_prompt_to_user:[1,1,1],clean:[1,1,1],setup_svn_server:[1,1,1],install_rubygems:[1,1,1],select_prompt:[1,1,1],a2enmod_rewrite:[1,1,1],reskel_existing_user:[1,1,1],aptget_lamp:[1,1,1],aptget_passenger:[1,1,1]}},terms:{all:[0,1,2,3],code:[0,2],skeleton:[1,2],chain:0,perl:0,scratch:1,global:3,stumbl:0,runserv:0,abil:0,follow:[0,1,2],install_python_virtualenv:1,depend:[0,1],specif:[0,1,2],common:[1,2,3],swap:2,under:3,reskel_existing_us:1,cgi:[0,1],virtualenviron:3,adapt:1,file:[0,1,2,3],liter:[0,2],string:2,far:0,none:[1,3],util:[1,2],candid:2,aptget_passeng:1,veri:1,exact:0,relev:2,cool:1,tri:[1,2],foo:0,magic:2,administr:[1,2,3],level:[0,3],team_password:3,restor:[1,3],list:[0,1,2,3],upload:[1,3],"try":[0,1,3],determin:3,form:1,red:[1,2],team:[0,1,2,3],quick:0,dir:[1,2,3],pleas:0,prevent:2,clean_vim_config:1,git_repo_devteam:3,webdav:0,encourag:[0,1],second:2,accomod:2,pass:[2,3],download:[0,1],further:0,clean_remote_backup_dir:1,keygen:3,port:[1,2],even:[0,1,2],index:[0,1,2],what:[0,1,2,3],proxy_apache_ssl:2,trivial:2,section:1,abl:[0,1,2,3],proxy_django:2,current:[0,1,3],delet:[0,1],version:[0,1,2],run:[0,1,2,3],"new":[0,1],maverick:2,"public":[0,1,2,3],centos_cloud:2,whatev:3,full:[0,3],themselv:[1,2],abov:2,hase:3,gener:[0,1,2,3],never:[0,1,3],fabfil:[0,1,2,3],satisfi:0,modular:1,let:[2,3],ubuntu:[0,1,2],path:3,along:[0,1],becom:0,modifi:[1,2],sinc:1,wait:3,box:[0,1],search:0,initiali:1,mysit:2,local_config_dir:[2,3],step:2,prior:1,base:[0,1,2],chang:[0,1,2],commonli:1,privilig:1,whatnot:0,via:[0,3],extra:[0,1,2,3],primit:2,modul:[0,1,2],prefer:[0,1],gitolit:[0,1,2,3],tmux:1,vim:[0,1,3],invas:1,unix:3,api:[0,1],instal:[0,1,2,3],txt:0,select:[1,2],highli:1,httpd:[0,1],from:[0,1,2,3],would:[0,1,2],thre:0,behind_nginx:2,next:[0,2],websit:[0,3],few:[0,1],stylesheet:0,call:[0,1,3],usr:0,recommend:1,aptget_git_serv:1,care:1,type:[0,2],toggl:2,more:[0,1,2],colors_prompt:2,desir:1,peopl:[0,1],relat:[0,1,3],site:[0,1,2],mod_uwsgi:0,indic:0,particular:[1,2],known:0,actual:[0,1,2,3],ventur:[0,1],cach:[0,3],placehold:2,account:[0,1,2,3],ubuntucloud:0,retriev:0,room:2,hous:0,setup:[0,1,2],outlin:1,dev:[0,1,2],other:[0,1,3],backup_user_hom:1,paragraph:1,can:[0,1,2,3],purpos:2,root:[0,1,2,3],sqlite:[0,1],prompt:[0,1,2],encapsul:2,tar:1,give:[0,1,2],mayb:[1,2],sudo:[0,2,3],smtp:0,templat:[1,2],critic:3,sourc:[0,1,2],magento:1,want:[0,1,2,3],tarbal:[1,3],alwai:[1,2],cours:[0,1,3],end:[1,2,3],goal:2,freshli:1,secur:[0,1],anoth:[0,1,2],install_env_djangocm:1,write:[0,1,2],how:[0,1,2,3],lamp:0,env:1,instead:[0,1],config:[0,1,2,3],css:0,updat:1,regener:[1,2],product:0,lai:0,pypi:0,clone:[0,1],after:[1,3],clean_team_sudo:1,befor:0,goodi:0,mai:[0,1],multipl:[0,1],redund:0,data:3,git_repo_admin:3,a2enmod_passeng:1,github:0,essenti:0,setup_apach:1,sit:3,correspond:[0,1,2],django:[0,1,2],webroot:[0,1,3],"switch":[1,2],maintain:3,environ:[0,1,2],allow:[1,2,3],gitolite_admin_loc:3,origin:[1,3],frontend:[0,1],help:0,clumsili:2,becaus:[0,1,2,3],jpeg:0,mrcool:3,fab:[0,1,2],prod:0,privileg:[0,1,2,3],same:[0,1],still:[0,3],paramet:1,style:2,group:[1,2,3],primarili:2,fit:3,chosen:2,better:0,home_us:1,restart:[0,1,2,3],comprehens:1,mail:1,hidden:2,main:[0,1,2,3],might:1,easier:0,them:[2,3],good:[0,1,2],gitweb:1,thei:[1,2,3],python:[0,1,2],timestamp:1,handi:[0,1],initi:[0,1,3],upload_website_apache_localhost:1,rubygem:[0,1],compound:1,aka:[1,2,3],now:[0,1,2,3],term:0,somewher:0,name:[0,1,2,3],anyth:[1,2],edit:[0,1,2],simpl:[0,1,2],radiant:0,didn:0,separ:2,easili:[2,3],achiev:2,clean_root_us:1,mode:[2,3],each:[0,1,3],found:[0,1,2],vhost:[0,1,2,3],vim_config_tarbal:3,compil:[0,1],domain:[0,2,3],proxy_apach:2,idea:[0,1,2],realli:[0,1,3],connect:1,our:1,happen:2,patch:1,todo:2,orient:2,special:[1,2],out:[0,2,3],variabl:[1,2],network:0,goe:0,alwa:1,content:[0,1],rewrit:1,stupid:2,suitabl:[0,1],explan:[0,3],internet:0,hardwar:2,got:1,forth:2,uwsgi:1,ree:0,postgr:1,install_:1,proxi:[0,1,2],advanc:1,differ:[0,1,2],pub:[2,3],standard:[0,1],standalon:0,clean_gitolite_config:1,select_prompt:1,setup_serv:1,org:[0,1],alert:2,bash:[0,2],basi:1,prefab:[0,2],fairli:[0,1,2],could:[0,3],put:[0,1,2,3],fqdn:[0,3],keep:[0,1],thing:[1,2],perhap:0,enforc:1,place:[0,2],outsid:[0,1],interact:2,first:[0,2],pristin:1,softwar:[0,1],directli:[0,3],feel:[0,2],arrai:1,number:[0,1],yourself:0,install_mod_passenger_gem:1,date:0,instruct:0,alreadi:[0,1,2],done:[0,1],least:[0,1],blank:1,installed_app:0,miss:3,primari:2,fanci:1,add_prompt_to_us:1,given:[0,1],aptget_uwsgi:1,convent:[1,2],script:[0,1,2,3],top:3,system:[0,1,2,3],wrapper:1,remote_backup_dir:[1,3],necessarili:1,master:[0,1,2],statement:2,similarli:0,install_team_sudo:1,ton:1,scheme:0,local_tar_dir:3,store:3,server_hostnam:3,shell:[0,1,2,3],rainmak:[0,1,3],option:[2,3],install_vim_config:1,tool:1,copi:[0,1,2],setuptool:1,specifi:0,provid:[0,1],part:1,somehost:0,attempt:0,than:[0,1,2,3],serv:[1,2,3],wide:[1,3],kind:1,john:3,target:2,remot:[1,2],remov:1,structur:[0,1,2],project:[0,1,2,3],postfix:0,mkvirtualenv:[0,1],sed:2,minut:2,toward:2,browser:1,pre:2,sai:0,bootstrap:1,comput:[2,3],nicer:0,php_gener:2,mind:2,ani:[0,1,3],install_gitolite_config:1,packag:[0,1,2,3],have:[0,1,3],tabl:0,need:[0,1,2,3],yourrootpasswordher:0,turn:1,probabl:[0,1,2,3],built:[1,2],equival:0,self:[0,1],install_webroot:1,also:[0,1,2,3],ideal:0,exampl:[0,1,3],take:[1,2],which:[0,1,2,3],exuberr:1,noth:2,singl:[0,1,3],generatedata:2,begin:1,sure:2,unless:[2,3],distribut:[0,1,2],deploy:0,usernam:[0,2,3],who:[0,3],setup_git_serv:1,most:[0,1,2,3],test_remot:1,regular:[0,1,2],plan:[0,2],deploi:[0,1,3],pair:3,henc:2,install_sys_djangocm:1,aptget_compil:1,don:[0,1,2,3],cloudfab:0,url:[0,3],doc:[0,1,2],gather:2,request:2,doe:[0,2,3],inde:2,yum:1,clean:[0,1,2],setup_rubi:1,latest:[0,1,2],fact:[0,2],ctag:1,wsgi:1,mostli:1,brute:2,show:2,passw:1,bring:0,session:0,particularli:3,permiss:1,fine:3,sasl:0,xml:1,rackspac:[0,1,2],onli:[0,1,3],locat:1,pretti:[0,1,3],menu:2,configur:[0,1,2,3],apach:[0,1,2,3],written:2,create_missing_shell_kei:3,should:[0,1,2,3],busi:0,folder:[0,1,2,3],local:[0,1,3],over:[0,1],hope:2,meant:[1,2],variou:[0,1,2,3],get:[0,1,2],express:1,watch:1,passeng:[0,1],a2enmod_rewrit:1,pop3:0,ssl:2,ssh:[0,1,3],install_python_distribut:1,report:1,regen_config:[1,3],requir:[0,1,3],layout:[0,1,2],prime:2,maverick_cloud:[1,2],remote_config_dir:[1,3],gitolite_admin_us:3,enabl:[1,2],sudoer:1,method:1,gitolite_admin_nam:3,install_nginx_config:1,stuff:[0,1,2],git_hosted_repo:[1,3],though:0,contain:[0,2,3],through:[0,2],where:[0,1,2,3],bother:1,configure_restricted_shar:1,set:[0,1,2,3],project_nam:0,heavili:0,configure_open_shar:1,bash_prompt:[1,2],see:[0,1,2,3],temporarili:3,bare:1,result:[2,3],deploy_usernam:3,quickfab:0,best:[0,3],aptget_databas:1,aptget_lamp:1,databas:[0,1],someth:[0,2,3],exist:[1,2,3],gitolite_admin_email:3,yet:[0,1,3],conveni:1,state:1,won:[2,3],between:[1,2],"import":[2,3],email:0,gemfil:0,kei:[1,2,3],xslt:1,clone_root_pubkei:1,extens:1,entir:[1,2],here:[0,1,2],otherwis:[0,3],deploy_password:3,maverick_vm:2,come:[0,1,2,3],addit:2,both:[0,2],aptget_svn_serv:1,easi:[0,2],plugin:1,admin:[0,1,3],howev:[0,1,2],alon:3,etc:[1,2],instanc:0,present:2,restore_webroot:1,modif:2,share:1,com:[0,2,3],team_sudo_cmd:3,curios:0,simpli:[0,2,3],point:[2,3],color:2,overview:[0,1,2],fedora_amazon:2,restore_user_hom:1,superhack:3,respect:[1,2,3],trust:2,myhost:3,late:1,three:[0,1,2],coupl:1,myserv:0,subfold:0,mari:3,empti:2,compon:2,skel:[1,2,3],much:[0,3],basic:[0,1,2,3],rebuilt:3,quickli:2,clean_gitolit:1,life:0,wish:[0,1,2],install_master_us:1,capabilit:1,imag:[0,1],rubi:[0,1],argument:1,bulk:2,rocksolidwebdesign:0,server_groupnam:3,togeth:1,srcdir:1,vimrc:3,install_etc_skel:1,imap:0,those:[0,1,3],matter:2,"case":1,setup_al:0,ident:2,look:[1,2,3],raw:0,awesom:[1,2],gem:[0,1],install_team_us:1,alter:1,aim:[0,3],defin:[0,2],publicli:1,login:[1,2],install_rvm:1,add_custom_us:1,bin:0,virtualenvwrapp:0,helper:1,team_us:3,readi:0,canon:[0,3],non:2,worri:2,itself:2,conf:[1,2,3],curl:0,par:1,develop:[0,1,2,3],minim:0,media:0,make:[0,1,2],belong:3,header:1,dyndn:1,member:[0,1,3],binari:0,clean_remote_config_dir:1,html:[0,2],split:1,webroot_dir:[0,3],document:[0,1,2],backup_apache_config:1,mod_wsgi:0,complet:[0,2],clean_etc_skel:1,http:[0,1,2],hostnam:[0,2,3],expans:2,rail:[0,1,2],hand:1,cloud_util:2,capabl:0,user:[0,1,2,3],ownership:1,mani:0,php:[0,1,2],typic:0,recent:[0,1],task:[0,1,2,3],off:2,lib:1,whole:1,well:[0,3],know:0,person:[2,3],without:[0,3],command:[1,2,3],thi:[0,1,2,3],choos:[2,3],everyth:[0,2,3],tast:[0,3],install_python_pip:1,usual:[0,3],regen_:1,just:[0,1,2,3],less:1,when:[0,1,2,3],muck:0,rest:2,collabor:2,sampl:[0,1],maveric_cloud:2,mysql:[0,1],flavor:2,ps1:2,aptget_mod_wsgi:1,clean_team_us:1,previous:0,web:[0,1,2,3],install_apache_config:1,hint:2,restructuredtext:2,had:0,except:3,littl:[0,1],apache2:[0,2],install_rails_serv:1,add:[0,1,2,3],rakefil:0,foobar:3,dovecot:0,save:3,explanatori:1,app:[0,1],build:[1,2],team_groupnam:3,applic:1,around:1,format:2,read:[1,2],install_rvm_rails_serv:1,fedora_cloud:2,nginx:[0,1,2],machin:[0,3],backup_:1,setup_:1,apt:[0,1],init_system:1,init_root_us:1,setup_svn_serv:1,password:[0,1,3],recurs:1,wonderwidget:[0,1,3],measur:0,gem1:0,vhost_templ:[1,2],like:[0,1,2,3],semi:0,bashrc:[1,2],python_environment_dir:3,manual:[0,2],test_:1,server:[0,1,2,3],backup_webroot:1,necessari:1,single_user_mod:[1,3],manag:[0,1],two:[0,1,2],oddli:0,www:[0,3],revers:[0,1,2],old:0,webserv:[0,1],compat:[0,1],some:[0,1,2,3],somehow:2,proxy_rail:2,aptget_vim73:1,create_missing_git_kei:3,proper:[1,2],home:[1,2],restore_:1,virtualenv:[0,1,2],implement:3,server_typ:0,avoid:1,phpinfo:1,aptget_common_dev_head:1,per:[0,1],passwd:0,leav:[2,3],cloud:[0,2],condit:2,backup_nginx_config:1,complic:[1,2],hopefulli:0,localhost:1,clean_:1,plu:1,previou:3,clean_master_us:1,workgroup:1,power:2,usag:0,djangocms_test:[0,1],symlink:[0,1,2],cumbersom:1,broken:1,host:[0,1,2,3],colleg:0,repositori:[0,1,3],fulli:0,main_usernam:3,stage:0,necess:[0,1],about:[0,2],postgresql:0,slightli:1,surround:2,page:0,setup_nginx:1,act:0,commit:3,backup:1,gemset:0,own:[0,1,2,3],aptget_mail_serv:1,within:2,easy_instal:0,automat:[0,1,3],upgrad:0,stop:1,right:[1,2],been:3,subvers:[0,1],your:[0,1,2,3],leverag:0,behind:[1,2],git:[0,1,3],fabric:0,wai:[0,1],aren:[1,3],transfer:3,support:0,question:1,live:[0,2],"long":3,custom:[0,1,2,3],avail:[0,1,2],start:[0,1],includ:[0,1,2],remote_root:1,suit:1,"var":[0,1],strictli:1,setup_python:1,strict:0,asset:0,"function":1,restore_nginx_config:1,powerfulli:1,install_rubygem:1,enough:[0,1],forc:[2,3],proxy_passeng:2,continu:0,restore_apache_config:1,uninstal:1,startproject:0,eas:1,"true":[1,3],aptget_software_upd:1,server_domain:[2,3],info:1,made:1,consist:2,possibl:[0,1],"default":[0,1,2,3],checkout:3,access:[0,1,3],configure_python_virtualenv:1,preconfigur:[1,2],limit:[0,1],target_host:1,sort:1,aptget_init:1,creat:[0,1,3],"abstract":2,filenam:3,rvm:[0,1,2],apache_config_dir:2,main_password:3,test_loc:1,pip:[0,1],ship:0,work:[0,1,2],fill:3,echo:1,again:0,a2enmod_proxi:1,titl:1,regen_tarbal:[1,3],green:1,virtual:[0,1,3],aptget_rubi:1,setup_us:1,valid:1,futur:[0,2],normal:0,aptget_:1,test:[0,1],you:[0,1,2,3],clean_al:1,nice:3,repeat:1,intend:0,aptget_nginx:1,repo:[1,2,3],workon:[0,1],formatt:1,local_backup_dir:3,releas:0,log:[0,1,2],fresh:1,debian:2,stai:0,svn:1,sphinx:[1,2],longer:0,directori:[0,1,2,3],pubkei:1,descript:2,proxy_wsgi:2,radiantcm:1,gracefulli:1,back:[1,2,3],time:[0,1,3],understand:0},objtypes:{"0":"py:module","1":"py:function"},titles:["Ubuntu Server In A Box Fabfile","Tasks","Configuration","Settings"],objnames:{"0":"Python module","1":"Python function"},filenames:["index","tasks","configuration","settings"]})
View
167 docs/settings.html
@@ -23,7 +23,7 @@
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="top" title="Ubuntu Server In A Box v0.0.1 documentation" href="index.html" />
- <link rel="next" title="Configuration Directory" href="config_dir.html" />
+ <link rel="next" title="Configuration" href="configuration.html" />
<link rel="prev" title="Ubuntu Server In A Box Fabfile" href="index.html" />
</head>
<body>
@@ -37,7 +37,7 @@
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
- <a href="config_dir.html" title="Configuration Directory"
+ <a href="configuration.html" title="Configuration"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="index.html" title="Ubuntu Server In A Box Fabfile"
@@ -53,100 +53,125 @@
<div class="section" id="settings">
<h1>Settings<a class="headerlink" href="#settings" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="web-server">
+<span id="id1"></span><h2>Web Server<a class="headerlink" href="#web-server" title="Permalink to this headline">¶</a></h2>
+<dl class="docutils">
+<dt><tt class="docutils literal"><span class="pre">server_hostname</span></tt></dt>
+<dd>This is pretty much the single most important setting because it&#8217;s where
+you&#8217;re aiming the script. You should aim it at a canonical FQDN like
+<tt class="docutils literal"><span class="pre">foobar.myhost.com</span></tt>. If you want your website to run on e.g. just
+<tt class="docutils literal"><span class="pre">myhost.com</span></tt> that&#8217;s fine this script installs a default apache host that
+runs on just the top level domain, so don&#8217;t set this to just <tt class="docutils literal"><span class="pre">myhost.com</span></tt>
+or this script will try to run your server directly on <tt class="docutils literal"><span class="pre">.com</span></tt> and that
+won&#8217;t end well.</dd>
+<dt><tt class="docutils literal"><span class="pre">server_domain</span></tt></dt>
+<dd><p class="first">The top level domain name of the server you&#8217;ll actually be running so if
+your hostname is <tt class="docutils literal"><span class="pre">rainmaker.wonderwidget.com</span></tt> then this setting should
+be <tt class="docutils literal"><span class="pre">wonderwidget.com</span></tt>.</p>
+<p class="last">The domain will be automatically determined from the hostname so as long as
+you set a nice canonical FQDN hostname then you don&#8217;t actually need to set
+the domain name.</p>
+</dd>
+<dt><tt class="docutils literal"><span class="pre">server_groupname</span></tt></dt>
+<dd>The unix group name under which the web server runs. You should most likely
+just leave this setting alone unless you really want your web server to run
+under something other than the default <tt class="docutils literal"><span class="pre">www-data</span></tt> group.</dd>
+<dt><tt class="docutils literal"><span class="pre">webroot_dir</span></tt></dt>
+<dd>The root directory for served file to the web this directory will be backed
+up if it exists and created if it does not exist</dd>
+</dl>
+</div>
<div class="section" id="general">
-<span id="id1"></span><h2>General<a class="headerlink" href="#general" title="Permalink to this headline">¶</a></h2>
+<span id="id2"></span><h2>General<a class="headerlink" href="#general" title="Permalink to this headline">¶</a></h2>
<dl class="docutils">
<dt><tt class="docutils literal"><span class="pre">single_user_mode</span></tt></dt>
-<dd><p class="first">If you are never going to really have any other users except root
-and the web server user, then choose single_user_mode</p>
-<p>This will result in only a single extra user, the deploy user
-being created. The deploy user will own and have full access to
-the webroot and vhost config directories and the deploy user
-will have full sudo privileges.</p>
+<dd><p class="first">If you are never going to really have any other users except root and the
+web server user, then choose single_user_mode</p>
+<p>This will result in only a single extra user, the deploy user being created.
+The deploy user will own and have full access to the webroot and vhost
+config directories and the deploy user will have full sudo privileges.</p>
<p class="last">you can still install other team members in deploy mode</p>
</dd>
<dt><tt class="docutils literal"><span class="pre">remote_backup_dir</span></tt>, <tt class="docutils literal"><span class="pre">remote_config_dir</span></tt></dt>
-<dd>These are the commands your deploy user can run, basically
-to allow restarting the web server and other common web
-server related tasks. You should choose a directory
-that does not yet exist for these settings.</dd>
+<dd>These are the commands your deploy user can run, basically to allow
+restarting the web server and other common web server related tasks. You
+should choose a directory that does not yet exist for these settings.</dd>
<dt><tt class="docutils literal"><span class="pre">local_config_dir</span></tt></dt>
-<dd>This is the path to your server configuration files. these
-files let you customize the resulting server to fit your
-tastes e.g. automatic install of your hosts and users just
-by filling out the config directory. see <a class="reference internal" href="config_dir.html"><em>Configuration Directory</em></a>
-for an explanation of how these files are used and what
+<dd>This is the path to your server configuration files. these files let you
+customize the resulting server to fit your tastes e.g. automatic install of
+your hosts and users just by filling out the config directory. see
+<a class="reference internal" href="configuration.html"><em>Configuration</em></a> for an explanation of how these files are used and what
you can do with them.</dd>
-</dl>
-</div>
-<div class="section" id="web-server">
-<span id="id2"></span><h2>Web Server<a class="headerlink" href="#web-server" title="Permalink to this headline">¶</a></h2>
-<dl class="docutils">
-<dt><tt class="docutils literal"><span class="pre">webroot_dir</span></tt></dt>
-<dd>The root directory for served file to the web
-this directory will be backed up if it exists
-and created if it does not exist</dd>
-<dt><tt class="docutils literal"><span class="pre">server_domain</span></tt></dt>
-<dd>The top level domain name of the server you&#8217;ll actually be running</dd>
-<dt><tt class="docutils literal"><span class="pre">server_hostname</span></tt></dt>
-<dd>The specific hostname of the server you&#8217;ll actually be running</dd>
-<dt><tt class="docutils literal"><span class="pre">server_groupname</span></tt></dt>
-<dd>The unix group name under which the web server runs</dd>
+<dt><tt class="docutils literal"><span class="pre">local_backup_dir</span></tt>, <tt class="docutils literal"><span class="pre">local_tar_dir</span></tt></dt>
+<dd>These are the local cache files. I call them cache files because, well, they
+don&#8217;t do much except sit there and look all nice and pretty, packaged up for
+transfer, just waiting to be uploaded. Also none of these files are
+particularly critical because they&#8217;re generated from the current configs and
+can be rebuilt easily with the <tt class="docutils literal"><span class="pre">regen_configs</span></tt> and <tt class="docutils literal"><span class="pre">regen_tarballs</span></tt>
+tasks respectively.</dd>
+<dt><tt class="docutils literal"><span class="pre">create_missing_shell_keys</span></tt>, <tt class="docutils literal"><span class="pre">create_missing_git_keys</span></tt></dt>
+<dd>When it comes time to create shell users, usually key pair access is best
+and gitolite actually forces it so if there aren&#8217;t any keys for the
+respective shell or gitolite users in the config dir then if these are set
+to true (which they are by default) then some keys will be generated
+using <tt class="docutils literal"><span class="pre">ssh-keygen</span></tt>. The create missing shell keys options is not yet
+implemented. Only missing git keys are created for now.</dd>
</dl>
</div>
<div class="section" id="user">
<span id="id3"></span><h2>User<a class="headerlink" href="#user" title="Permalink to this headline">¶</a></h2>
<dl class="docutils">
<dt><tt class="docutils literal"><span class="pre">python_environment_dir</span></tt></dt>
-<dd>The name of the directory where each user will
-store their virtualenvironments</dd>
+<dd>The name of the directory where each user will store their
+virtualenvironments</dd>
<dt><tt class="docutils literal"><span class="pre">main_username</span></tt>, <tt class="docutils literal"><span class="pre">main_password</span></tt></dt>
-<dd><p class="first">This is your main username - you, the person who will
-be running this fabfile. so for example &#8216;john&#8217; or &#8216;mary&#8217;
-&#8216;superhacker&#8217;, &#8216;mrcool&#8217; or whatever username you want.</p>
-<p class="last">If you&#8217;r installing via sudo this should be the username
-of the user who has those sudo privileges. for example
-if you&#8217;re installing to a virtual machine</p>
+<dd><p class="first">This is your main username - you, the person who will be running this
+fabfile. so for example &#8216;john&#8217; or &#8216;mary&#8217; &#8216;superhacker&#8217;, &#8216;mrcool&#8217; or whatever
+username you want.</p>
+<p class="last">If you&#8217;r installing via sudo this should be the usernam of the user who hase
+those sudo privileges. for exampl if you&#8217;re installing to a virtual machin e</p>
</dd>
<dt><tt class="docutils literal"><span class="pre">deploy_username</span></tt>, <tt class="docutils literal"><span class="pre">deploy_password</span></tt></dt>
-<dd>The deploy user is your &#8220;everything web&#8221; user. your
-deploy user will own all the files that belong to
-your actual websites, your deploy user will be
-able to restart the web server and add vhosts
-without requiring a password</dd>
+<dd>The deploy user is your &#8220;everything web&#8221; user. your deploy user will own all
+the files that belong to your actual websites, your deploy user will be able
+to restart the web server and add vhosts without requiring a password</dd>
<dt><tt class="docutils literal"><span class="pre">team_groupname</span></tt>, <tt class="docutils literal"><span class="pre">team_password</span></tt>, <tt class="docutils literal"><span class="pre">team_users</span></tt></dt>
-<dd>If you have a list of other users, probably
-developers who will need shell accounts then</dd>
+<dd>If you have a list of other users, probably developers who will need shell
+accounts then</dd>
<dt><tt class="docutils literal"><span class="pre">team_sudo_cmds</span></tt></dt>
-<dd>These are the commands your deploy user can run, basically
-to allow restarting the web server and other common web
-server related tasks</dd>
+<dd>These are the commands your deploy user can run, basically to allow
+restarting the web server and other common web server related tasks</dd>
<dt><tt class="docutils literal"><span class="pre">vim_config_tarball</span></tt></dt>
-<dd><p class="first">If you want a custom vim configuration installed for your
-users, system wide you can use this one, otherwise, you
-could of course put your own in the <tt class="docutils literal"><span class="pre">conf/skel</span></tt> directory</p>
-<p class="last">If you want your own system wide vim config just point this
-to the URL of a tarball that contains simply a
-<tt class="docutils literal"><span class="pre">.vim</span></tt> folder and <tt class="docutils literal"><span class="pre">.vimrc</span></tt> file</p>
+<dd><p class="first">If you want a custom vim configuration installed for your users, system wide
+you can use this one, otherwise, you could of course put your own in the
+<tt class="docutils literal"><span class="pre">conf/skel</span></tt> directory</p>
+<p class="last">If you want your own system wide vim config just point this to the URL of a
+tarball that contains simply a <tt class="docutils literal"><span class="pre">.vim</span></tt> folder and <tt class="docutils literal"><span class="pre">.vimrc</span></tt> file</p>
</dd>
</dl>
</div>
<div class="section" id="git-repositories">
<span id="git"></span><h2>Git Repositories<a class="headerlink" href="#git-repositories" title="Permalink to this headline">¶</a></h2>
<dl class="docutils">
-<dt><tt class="docutils literal"><span class="pre">gitolite_admin_local_dir</span></tt>, <tt class="docutils literal"><span class="pre">gitolite_admin_user</span></tt>, <tt class="docutils literal"><span class="pre">gitolite_admin_email</span></tt></dt>
-<dd>You will need to checkout the gitolite admin repo
-on to your local computer to add the keys for the deploy
-user so that the deploy user can checkout your projects
-in to your various webroot folders</dd>
+<dt><tt class="docutils literal"><span class="pre">gitolite_admin_local</span></tt>,</dt>
+<dd>You will need to checkout the gitolite admin repo on to your local computer
+to add the keys for the deploy user so that the deploy user can checkout
+your projects in to your various webroot folders</dd>
+<dt><tt class="docutils literal"><span class="pre">gitolite_admin_name</span></tt>, <tt class="docutils literal"><span class="pre">gitolite_admin_email</span></tt></dt>
+<dd>These settings are passed to <tt class="docutils literal"><span class="pre">git</span>&nbsp; <span class="pre">config</span>&nbsp; <span class="pre">--global</span></tt> temporarily and
+previous/current settings are saved. After the gitolite server has been
+initialized the original user&#8217;s git settings are restored.</dd>
+<dt><tt class="docutils literal"><span class="pre">gitolite_admin_user</span></tt></dt>
+<dd>This will be the filename of the default gitolite administrator&#8217;s public key
+when the pub key file is created from the local aka main user&#8217;s ssh key.</dd>
<dt><tt class="docutils literal"><span class="pre">git_repo_admins</span></tt></dt>
-<dd>usernames of the users who are actually allowed to admin and
-maintain the repositories and who has access to them</dd>
+<dd>Usernames of the users who are actually allowed to admin and maintain the
+repositories and who has access to them</dd>
<dt><tt class="docutils literal"><span class="pre">git_repo_devteam</span></tt></dt>
-<dd>these are your actual developers who will need commit
-access to your repositories</dd>
+<dd>These are your actual developers who will need commit access to your
+repositories</dd>
<dt><tt class="docutils literal"><span class="pre">git_hosted_repos</span></tt></dt>
-<dd>this is your list of git repositories</dd>
+<dd>This is your list of git repositories</dd>
</dl>
</div>
</div>
@@ -160,8 +185,8 @@
<h3><a href="index.html">Table Of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Settings</a><ul>
-<li><a class="reference internal" href="#general">General</a></li>
<li><a class="reference internal" href="#web-server">Web Server</a></li>
+<li><a class="reference internal" href="#general">General</a></li>
<li><a class="reference internal" href="#user">User</a></li>
<li><a class="reference internal" href="#git-repositories">Git Repositories</a></li>
</ul>
@@ -172,8 +197,8 @@
<p class="topless"><a href="index.html"
title="previous chapter">Ubuntu Server In A Box Fabfile</a></p>
<h4>Next topic</h4>
- <p class="topless"><a href="config_dir.html"
- title="next chapter">Configuration Directory</a></p>
+ <p class="topless"><a href="configuration.html"
+ title="next chapter">Configuration</a></p>
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="_sources/settings.txt"
@@ -206,7 +231,7 @@
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
- <a href="config_dir.html" title="Configuration Directory"
+ <a href="configuration.html" title="Configuration"
>next</a> |</li>
<li class="right" >
<a href="index.html" title="Ubuntu Server In A Box Fabfile"
View
433 docs/tasks.html
@@ -23,7 +23,7 @@
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="top" title="Ubuntu Server In A Box v0.0.1 documentation" href="index.html" />
- <link rel="prev" title="Configuration Directory" href="config_dir.html" />
+ <link rel="prev" title="Configuration" href="configuration.html" />
</head>
<body>
<div class="related">
@@ -36,7 +36,7 @@
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
- <a href="config_dir.html" title="Configuration Directory"
+ <a href="configuration.html" title="Configuration"
accesskey="P">previous</a> |</li>
<li><a href="index.html">Ubuntu Server In A Box v0.0.1 documentation</a> &raquo;</li>
</ul>
@@ -83,7 +83,7 @@
themselves.</p>
<p>To get an idea of how to modify these tasks, I would
recommend reading the Task API and then also looking at
-<a class="reference internal" href="config_dir.html"><em>Configuration Directory</em></a></p>
+<a class="reference internal" href="configuration.html"><em>Configuration</em></a></p>
<p>If you want to for example change the way gitolite or
Apache adds users and vhosts, you&#8217;ll want to look at the
<tt class="docutils literal"><span class="pre">install_</span></tt> related tasks</p>
@@ -103,29 +103,35 @@
<span id="id2"></span><h2>Task API<a class="headerlink" href="#task-api" title="Permalink to this headline">¶</a></h2>
<p>Here is the documentation for each fab task that is available</p>
<p>You can of course, also see this list with <tt class="docutils literal"><span class="pre">fab</span> <span class="pre">--list</span></tt></p>
-<span class="target" id="module-quickfab.ubuntu.fabfile"></span><dl class="function">
-<dt id="quickfab.ubuntu.fabfile.a2enmod_proxy">
-<tt class="descclassname">quickfab.ubuntu.fabfile.</tt><tt class="descname">a2enmod_proxy</tt><big>(</big><big>)</big><a class="headerlink" href="#quickfab.ubuntu.fabfile.a2enmod_proxy" title="Permalink to this definition">¶</a></dt>
-<dd><p>Mod proxy is not enable by default, so enable it.</p>
+<span class="target" id="module-maverick_cloud.fabfile"></span><dl class="function">
+<dt id="maverick_cloud.fabfile.a2enmod_passenger">
+<tt class="descclassname">maverick_cloud.fabfile.</tt><tt class="descname">a2enmod_passenger</tt><big>(</big><big>)</big><a class="headerlink" href="#