ansible-playbooks/create-user.yml

66 lines
1.6 KiB
YAML
Raw Normal View History

2013-09-26 10:46:10 +00:00
##
# 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"
2013-09-26 11:52:16 +00:00
private: no
2013-09-26 10:46:10 +00:00
encrypt: "sha512_crypt"
salt_size: 8
- name: "mysql_password"
prompt: "MySQL Password"
2013-09-26 11:52:16 +00:00
private: no
2013-09-26 10:46:10 +00:00
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
2013-09-26 11:52:16 +00:00
template: src=templates/etc-apache2-sites-available-username.j2 dest=/etc/apache2/sites-available/{{ username }}
2013-09-26 10:46:10 +00:00
tags: apache
- name: Apache | Create document root
2013-09-26 11:52:16 +00:00
file: path=/home/$username/public_html owner=$username group=$username mode=0755 state=directory
2013-09-26 10:46:10 +00:00
tags: apache
- name: Apache | Enable site
2013-09-26 11:52:16 +00:00
command: a2ensite {{ username }}
2013-09-26 10:46:10 +00:00
tags: apache
2013-09-26 11:52:16 +00:00
- name: Apache | Reload service
command: service apache2 reload
tags: apache