Compare commits

..

7 Commits

12 changed files with 203 additions and 33 deletions

View File

@@ -1 +1,14 @@
<h1> Serveur pédagogique pour {{ name }} </h1>
<!DOCTYPE html>
<html lang=fr>
<head>
<meta charset="UTF-8">
<meta name="Author" content="B.Bertrand">
<title>{{ item }}</title>
</head>
<body>
<h1> Serveur pédagogique pour {{ item }} </h1>
<!-- corps: tout ce que l'on veut afficher doit être mis entre ces balises -->
</body>
</html>

22
files/root_index.html.j2 Normal file
View File

@@ -0,0 +1,22 @@
<!DOCTYPE html>
<html lang=fr>
<head>
<meta charset="UTF-8">
<meta name="Author" content="B.Bertrand">
<title>{{ item }}</title>
</head>
<body>
<h1> Serveur pédagogique pour {{ matiere }} </h1>
<!-- corps: tout ce que l'on veut afficher doit être mis entre ces balises -->
<ul>
{% for user in peda %}
<li>
<a href="./~{{ user }}">{{ user }}</a>
</li>
{% endfor%}
</ul>
</body>
</html>

11
files/vsftpd.conf.j2 Normal file
View File

@@ -0,0 +1,11 @@
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd

5
home Normal file
View File

@@ -0,0 +1,5 @@
[nsi]
192.168.2.146 ansible_user=debian
[snt]
ansible ansible_user=debian

View File

@@ -1,13 +1,13 @@
---
- hosts: 127.0.0.1
connection: local
- hosts: all
#ask_pass: true
become: true
vars_files:
- vars/default.yml
- vars/accounts.yml
tasks:
- include: tasks/lamp.yml
#- include: tasks/lamp.yml
- include: tasks/accounts.yml
handlers:

5
lycee Normal file
View File

@@ -0,0 +1,5 @@
[stex]
stex.ovh ansible_port=25022 ansible_user=root
[home]
192.168.2.146 ansible_user=debian

34
lycee.yml Normal file
View File

@@ -0,0 +1,34 @@
---
- hosts: snt
#ask_pass: true
become: true
vars_files:
- vars/default.yml
- vars/snt_accounts.yml
pre_tasks:
- name: Update
apt:
update_cache: true
upgrade: true
tasks:
- include: tasks/lamp.yml
- include: tasks/ftp.yml
- include: tasks/accounts.yml
handlers:
- name: Reload Apache
service:
name: apache2
state: reloaded
- name: Restart Apache
service:
name: apache2
state: restarted
- name: Reload vsftpd
service:
name: vsftpd
state: reload

View File

@@ -1 +1,42 @@
---
- name: add users
user:
name: "{{ item }}"
create_home: true
password: "{{ lookup('password', './pass/' + item + '_pass length=10 chars=ascii_letters') | password_hash('sha512') }}"
update_password: on_create
with_items: "{{ users }}"
register: returned
- name: create public_html
file:
path: "/home/{{ item}}/public_html/"
owner: "{{ item }}"
group: www-data
state: directory
with_items: "{{ users }}"
- name: Sets Up Index page
template:
src: "files/index.html.j2"
dest: "/home/{{ item }}/public_html/index.html"
mode: 774
with_items: "{{ users }}"
- name: create database
mysql_db:
db: "{{ item }}"
state: present
login_user: root
login_password: "{{ mysql_root_password }}"
with_items: "{{ users }}"
- name: create db user
mysql_user:
user: "{{ item }}"
password: "{{ lookup('password', './pass/' + item + '_sql length=10 chars=ascii_letters') | password_hash('sha512') }}"
priv: "{{ item + '.*:ALL,GRANT' }}"
login_user: root
login_password: "{{ mysql_root_password }}"
state: present
with_items: "{{ users }}"

19
tasks/ftp.yml Normal file
View File

@@ -0,0 +1,19 @@
---
- name: Install vsftpd Packages
apt:
name: "{{ item }}"
state: latest
loop:
- 'vsftpd'
- name: Set up vsftpd conf
template:
src: "files/vsftpd.conf.j2"
dest: "/etc/vsftpd.conf"
notify: Reload vsftpd
- name: Start vsftpd service
service:
name: vsftpd
enabled: true
state: started

View File

@@ -1,12 +1,14 @@
---
- name: Install prerequisites
apt: name={{ item }} update_cache=yes state=latest force_apt_get=yes
loop: [ 'aptitude' ]
#Apache Configuration
- name: Install LAMP Packages
apt: name={{ item }} update_cache=yes state=latest
loop: [ 'apache2', 'mysql-server', 'python3-pymysql', 'php', 'php-mysql', 'libapache2-mod-php' ]
loop:
- 'apache2'
- 'mariadb-server'
- 'python3-pymysql'
- 'php'
- 'php-mysql'
- 'libapache2-mod-php'
- name: Create document root
file:
@@ -31,11 +33,17 @@
notify: Reload Apache
# MySQL Configuration
- name: Start MariaDB service
service:
name: mariadb
state: started
- name: Sets the root password
mysql_user:
name: root
password: "{{ mysql_root_password }}"
login_unix_socket: /var/run/mysqld/mysqld.sock
ignore_errors: yes
- name: Removes all anonymous user accounts
mysql_user:
@@ -52,12 +60,6 @@
login_user: root
login_password: "{{ mysql_root_password }}"
- name: "UFW - Allow HTTP on port {{ http_port }}"
ufw:
rule: allow
port: "{{ http_port }}"
proto: tcp
- name: Sets Up PHP Info Page
template:
src: "files/info.php.j2"
@@ -65,10 +67,11 @@
- name: Sets Up Index page
template:
src: "files/index.html.j2"
dest: "/var/www/{{ http_host }}/info.php"
src: "files/root_index.html.j2"
dest: "/var/www/{{ http_host }}/index.html"
vars:
name: "la SNT"
item:
- "{{ matiere }}"
- name: Enable userdir
shell: /usr/sbin/a2enmod userdir

View File

@@ -1 +1,4 @@
---
users:
- name: test1
- name: test2

14
vars/snt_accounts.yml Normal file
View File

@@ -0,0 +1,14 @@
---
matiere: "SNT"
peda:
- "2GTG1"
- "2GTG2"
- "2GTG3"
- "2GTG4"
- "2GTG5"
- "2GTG6"
- "2GTG8"
- "2GTG9"
profs:
- "proftest"
users: "{{ peda + profs }}"