Initial commit
This commit is contained in:
commit
8fd34d019f
62
create-user.yml
Normal file
62
create-user.yml
Normal file
|
@ -0,0 +1,62 @@
|
|||
##
|
||||
# Ansible playbook for creating a new user with their own mysql db and apache site
|
||||
#
|
||||
|
||||
---
|
||||
- hosts: all
|
||||
user: root
|
||||
|
||||
vars_files:
|
||||
- settings.yml
|
||||
|
||||
vars_prompt:
|
||||
- name: "domain_name"
|
||||
prompt: "Domain Name"
|
||||
private: no
|
||||
|
||||
- name: "username"
|
||||
prompt: "Username"
|
||||
private: no
|
||||
|
||||
- name: "user_fullname"
|
||||
prompt: "Full Name"
|
||||
private: no
|
||||
|
||||
- name: "user_password"
|
||||
prompt: "Password"
|
||||
private: yes
|
||||
encrypt: "sha512_crypt"
|
||||
salt_size: 8
|
||||
|
||||
- name: "mysql_password"
|
||||
prompt: "MySQL Password"
|
||||
private: yes
|
||||
|
||||
tasks:
|
||||
##
|
||||
# Apt package installation of required software.
|
||||
#
|
||||
- name: Linux | Create User
|
||||
user: name=$username comment="$user_fullname" password=$user_password shell="/bin/bash"
|
||||
tags: common
|
||||
|
||||
- name: MySQL | Create Database
|
||||
mysql_db: name="$username"
|
||||
tags: mysql
|
||||
|
||||
- name: MySQL | Create User with host localhost and privs on own DB
|
||||
mysql_user: user="$username" password="$mysql_password" host="localhost" priv="$username.*:ALL"
|
||||
tags: mysql
|
||||
|
||||
- name: Apache | Create virtual host site
|
||||
action: template src=templates/etc-apache2-sites-available-username.j2 dest=/etc/apache2/sites-available/{{ username }}
|
||||
tags: apache
|
||||
|
||||
- name: Apache | Create document root
|
||||
file: path=/home/$username/public_html owner=$username group=$username mode=0644 state=directory
|
||||
tags: apache
|
||||
|
||||
- name: Apache | Enable site
|
||||
action: command a2ensite {{ username }}
|
||||
tags: apache
|
||||
|
4
run-local-all
Executable file
4
run-local-all
Executable file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Script for running the play on the localhost, everything included.
|
||||
ansible-playbook -c local --tags="common,mysql,apache" ./create-user.yml
|
7
settings.yml
Normal file
7
settings.yml
Normal file
|
@ -0,0 +1,7 @@
|
|||
# Settings that are applied to the templates. This file should be copied to
|
||||
# the base folder of the play and renamed settings.yml, then modified to suit
|
||||
# your needs.
|
||||
|
||||
# apache
|
||||
apache_server_admin: 'webmaster@testa.hsl.dn42'
|
||||
|
8
templates/etc-apache2-sites-available-username.j2
Normal file
8
templates/etc-apache2-sites-available-username.j2
Normal file
|
@ -0,0 +1,8 @@
|
|||
##
|
||||
# Ansible provided setup. See https://github.com/fourkitchens/server-playbooks.
|
||||
##
|
||||
<VirtualHost *:80>
|
||||
ServerAdmin {{ apache_server_admin }}
|
||||
ServerName {{ domain_name }}
|
||||
DocumentRoot /home/{{ username }}/public_html
|
||||
</VirtualHost>
|
Loading…
Reference in New Issue
Block a user