Coder Social home page Coder Social logo

ansible-apache2-vhosts's Introduction

apache2-vhosts

This role creates a number of apache2 vhosts along with individual user acounts. This is used in an enviroment when a number of sites are hosted and need to be accessed by several developers. SSH is locked down so that only public key logins are allowed.

Role Variables

There are a number of variables that can be passed. Some will be needed on a per-host basis while others will be role based.

Apache variables

apache_packages:
  - apache2
  - apache2-doc
  - apache2-utils
  - apache2-mpm-itk
  - libapache2-mod-php5

apache_modules:
  - alias.conf
  - alias.load
  - auth_basic.load
  - authn_file.load
  - ...

apache_host: "127.0.0.1"
apache_port: "80"
apache_ssl_port: "443"

apache_packages

A list of all the apt apache2 packages that are needed. By default the apache2-mpm-itk worker is installed so that each vhost can be run as the user using it.

apache_modules

A list of all the enabled apache2 modules and the config files. Everything listed here is symlinked from /etc/apache2/mods-available to /etc/apache2/mods-enabled

apache_host

The IP adderss to bing apache2 to. Used for the Listen line in the apache config file as well as for the VirtualHost lines in the vhost config files.

apache_port

The port apache2 should listen on. Used for the Listen line in the apache config file as well as for the VirtualHost lines in the vhost config files.

apache_ssl_port

The SSL port apache2 should listen on. Used for the Listen line in the apache config file as well as for the VirtualHost lines in the vhost config files.

PHP variables

php_packages:
  - php5-common
  - php5-cli
  - php5-suhosin
  - php5-apc
  - php-pear
  - php5-gd
  - php5-memcache
  - php5-mcrypt
  - php5-gmp
  - php5-mysql
  - php5-curl

post_max_size: "10M"
upload_max_filesize: "10M"
php_timezone: "Australia/Brisbane"
memory_limit: "32M"
html_errors: "Off"

php_packages

A list of all the apt PHP packages that are needed.

post_max_size, upload_max_filesize, php_timezone, memory_limit, html_errors

Settings used in the php.ini file. These will likely be set per-host.

Vhost settings

deleted_vhost_sites:
  - {
      host: 'del.example.com',
      user: 'delexample',
      group: 'delexample',
      admin_email: '[email protected]',
      disabled: True
    }

disabled_vhost_sites: &disabled
  - {
      host: 'dev.example.com',
      user: 'devexample',
      group: 'devexample',
      admin_email: '[email protected]',
      disabled: True
    }

vhost_sites:
  - *disabled
  - {
      host: 'example.com',
      user: 'example',
      group: 'example',
      admin_email: '[email protected]',
      ssl: {
        enabled: False,
        ssl_certificate: '/path/to/ssl/cert',
        ssl_certificate_key: '/path/to/ssl/private_key'
      },
      aliases: [
        www.example.com
        au.example.com
      ]
    }

deleted_vhost_sites

Any sites listed here will be sure to not be present on the server. User accounts and public_html folders will be deleted and the site config files will be disabled and removed.

disabled_vhost_sites

Sites listed here will still have their user accounts and public_html folders present but they will not be able to log in and the vhost config file won't be enabled within apache.

vhost_sites

This is a merge of disabled and any extra sites that should be enabled. It will ensure that the user account is present and that they can log in via SSH. public_html folders will be created and the config will be symlinked to sites-enabled so that apache will server their content.

SSH settings

As part of the creation of the vhosts all files within files/ssh/keys are combined and added to each enabled user account. This allows a number of users to log into each account as the hosting user.

ansible-apache2-vhosts's People

Contributors

espadav8 avatar

Watchers

James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

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

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

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

  • D3 photo D3

    Data-Driven Documents codes.