[WIP] FreeBSD install ok
parent
44a5c31b12
commit
e00313bb36
|
@ -6,6 +6,7 @@
|
|||
Vagrant.configure("2") do |config|
|
||||
|
||||
vms = [
|
||||
[ "freebsd-10.2", "freebsd/FreeBSD-10.2-STABLE" ],
|
||||
[ "debian-wheezy", "debian/wheezy64" ],
|
||||
[ "debian-jessie", "debian/jessie64" ],
|
||||
[ "debian-stretch", "sharlak/debian_stretch_64" ]
|
||||
|
@ -21,11 +22,27 @@ Vagrant.configure("2") do |config|
|
|||
m.vm.box = vm[1]
|
||||
m.vm.network "private_network", type: "dhcp"
|
||||
|
||||
# See: https://forums.freebsd.org/threads/52717/
|
||||
if vm[0] = "freebsd-10.2"
|
||||
m.vm.guest = :freebsd
|
||||
m.vm.synced_folder ".", "/vagrant", id: "vagrant-root", disabled: true
|
||||
m.ssh.shell = "sh"
|
||||
#m.vm.base_mac = "0800278DFFF5"
|
||||
m.vm.base_mac = "080027D14C66"
|
||||
#m.vm.network "public_network", bridge: 'enp4s0', auto_config: false
|
||||
m.vm.provision "shell", inline: "pkg install -y python bash"
|
||||
end
|
||||
|
||||
m.vm.provision "ansible" do |ansible|
|
||||
ansible.playbook = "tests/test.yml"
|
||||
ansible.groups = { "test" => [ vm[0] ] }
|
||||
ansible.verbose = 'vv'
|
||||
ansible.sudo = true
|
||||
if vm[0] = "freebsd-10.2"
|
||||
ansible.extra_vars = {
|
||||
ansible_python_interpreter: '/usr/local/bin/python'
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -8,7 +8,6 @@ nginx_backports: false
|
|||
#
|
||||
nginx_root: "/srv/www"
|
||||
nginx_log_dir: '/var/log/nginx'
|
||||
nginx_pid: '/run/nginx.pid'
|
||||
nginx_resolver_hosts: ['8.8.8.8', '8.8.4.4']
|
||||
nginx_resolver_valid: '300s'
|
||||
nginx_resolver_timeout: '5s'
|
||||
|
@ -20,9 +19,9 @@ nginx_default_vhost_ssl: null
|
|||
#
|
||||
# Nginx directories
|
||||
#
|
||||
nginx_htpasswd_dir: '/etc/nginx/htpasswd'
|
||||
nginx_ssl_dir: '/etc/nginx/ssl'
|
||||
nginx_helper_dir: '/etc/nginx/helper'
|
||||
nginx_htpasswd_dir: '{{ nginx_etc_dir}}/htpasswd'
|
||||
nginx_ssl_dir: '{{ nginx_etc_dir}}/ssl'
|
||||
nginx_helper_dir: '{{ nginx_etc_dir}}/helper'
|
||||
|
||||
#
|
||||
# Load upstream
|
||||
|
@ -45,7 +44,6 @@ nginx_worker_processes: '{{ ansible_processor_vcpus }}'
|
|||
#
|
||||
nginx_events_worker_connections: '512'
|
||||
nginx_events_multi_accept: 'on'
|
||||
nginx_events_use: 'epoll'
|
||||
|
||||
#
|
||||
# Nginx HTTP
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
- name: TEMPLATE | Deploy nginx.conf
|
||||
template: >
|
||||
src=etc/nginx/nginx.conf.j2
|
||||
dest=/etc/nginx/nginx.conf
|
||||
dest="{{ nginx_etc_dir }}/nginx.conf"
|
||||
notify: reload nginx
|
||||
|
||||
- name: TEMPLATE | Deploy all helpers
|
||||
|
@ -16,6 +16,6 @@
|
|||
- name: TEMPLATE | Deploy custom http configuration
|
||||
template: >
|
||||
src=etc/nginx/conf.d/custom.conf.j2
|
||||
dest=/etc/nginx/conf.d/custom.conf
|
||||
dest="{{ nginx_etc_dir }}/conf.d/custom.conf"
|
||||
notify: reload nginx
|
||||
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
|
||||
- name: PKGNG | Install nginx and related tools
|
||||
pkgng: name=nginx state=present
|
||||
with_items:
|
||||
- nginx
|
||||
- py27-passlib
|
||||
- curl
|
||||
|
||||
- name: FILE | Create configuration dir (like Debian)
|
||||
file: path="{{ nginx_etc_dir }}/{{ item }}" state=directory
|
||||
with_items:
|
||||
- conf.d
|
||||
- sites-available
|
||||
- sites-enabled
|
|
@ -1,7 +1,11 @@
|
|||
---
|
||||
|
||||
|
||||
- name: INCLUDE_VARS | Related to OS
|
||||
include_vars: "{{ ansible_distribution }}.yml"
|
||||
|
||||
- name: INCLUDE | Install
|
||||
include: install.yml
|
||||
include: install_{{ ansible_distribution }}.yml
|
||||
|
||||
- name: INCLUDE | Prepare
|
||||
include: prepare.yml
|
||||
|
|
|
@ -1,11 +1,15 @@
|
|||
---
|
||||
|
||||
- name: TEMPLATE | Deploy PHP upstream to Nginx
|
||||
template: src=etc/nginx/upstream/php.conf.j2 dest=/etc/nginx/conf.d/php.conf
|
||||
template: >
|
||||
src=etc/nginx/upstream/php.conf.j2
|
||||
dest="{{ nginx_etc_dir }}/conf.d/php.conf"
|
||||
when: nginx_php
|
||||
notify: reload nginx
|
||||
|
||||
- name: TEMPLATE | Deploy other upstreams
|
||||
template: src=etc/nginx/upstream/upstream.conf.j2 dest=/etc/nginx/conf.d/upstream-{{ item.name }}.conf
|
||||
template: >
|
||||
src=etc/nginx/upstream/upstream.conf.j2
|
||||
dest={{ nginx_etc_dir }}/conf.d/upstream-{{ item.name }}.conf
|
||||
with_items: "{{ nginx_upstreams }}"
|
||||
notify: reload nginx
|
||||
|
|
|
@ -17,8 +17,8 @@
|
|||
file: >
|
||||
path={{ nginx_root }}/{{ item.name if item.name is string else item.name[0] }}/public
|
||||
state=directory
|
||||
owner={{ item.owner | default('www-data') }}
|
||||
group={{ item.group | default('www-data') }}
|
||||
owner={{ item.owner | default(nginx_user) }}
|
||||
group={{ item.group | default(nginx_user) }}
|
||||
mode={{ item.mode | default('0755') }}
|
||||
with_items: "{{ nginx_vhosts }}"
|
||||
when: >
|
||||
|
@ -30,21 +30,21 @@
|
|||
- name: TEMPLATE | Create vhosts
|
||||
template: >
|
||||
src=etc/nginx/sites-available/{{ item.template if item.redirect_to is not defined else '_redirect' }}.j2
|
||||
dest=/etc/nginx/sites-available/{{ item.name if item.name is string else item.name[0] }}
|
||||
dest={{ nginx_etc_dir }}/sites-available/{{ item.name if item.name is string else item.name[0] }}
|
||||
with_items: "{{ nginx_vhosts }}"
|
||||
notify: reload nginx
|
||||
when: item.delete is not defined or not item.delete
|
||||
|
||||
- name: FILE | Delete vhosts
|
||||
file: path=/etc/nginx/sites-available/{{ item.name if item.name is string else item.name[0] }} state=absent
|
||||
file: path={{ nginx_etc_dir }}/sites-available/{{ item.name if item.name is string else item.name[0] }} state=absent
|
||||
with_items: "{{ nginx_vhosts }}"
|
||||
notify: reload nginx
|
||||
when: item.delete is defined and item.delete
|
||||
|
||||
- name: FILE | Enable vhosts
|
||||
file: >
|
||||
src=/etc/nginx/sites-available/{{ item.name if item.name is string else item.name[0] }}
|
||||
dest=/etc/nginx/sites-enabled/{{ item.name if item.name is string else item.name[0] }}
|
||||
src={{ nginx_etc_dir }}/sites-available/{{ item.name if item.name is string else item.name[0] }}
|
||||
dest={{ nginx_etc_dir }}/sites-enabled/{{ item.name if item.name is string else item.name[0] }}
|
||||
state=link
|
||||
with_items: "{{ nginx_vhosts }}"
|
||||
notify: reload nginx
|
||||
|
@ -54,22 +54,22 @@
|
|||
(item.delete is not defined or not item.delete)
|
||||
|
||||
- name: FILE | Disable vhosts
|
||||
file: path=/etc/nginx/sites-enabled/{{ item.name if item.name is string else item.name[0] }} state=absent
|
||||
file: path={{ nginx_etc_dir}}/sites-enabled/{{ item.name if item.name is string else item.name[0] }} state=absent
|
||||
with_items: "{{ nginx_vhosts }}"
|
||||
notify: reload nginx
|
||||
when: (item.enable is defined and not item.enable) or (item.delete is defined and item.delete)
|
||||
|
||||
- name: FILE | Delete default vhost when explicitely defined
|
||||
file: >
|
||||
path=/etc/nginx/sites-enabled/default
|
||||
path={{ nginx_etc_dir }}/sites-enabled/default
|
||||
state=absent
|
||||
notify: reload nginx
|
||||
when: nginx_default_vhost is not none
|
||||
|
||||
- name: FILE | Auto set default vhost
|
||||
file: >
|
||||
src=/etc/nginx/sites-available/default
|
||||
dest=/etc/nginx/sites-enabled/default
|
||||
src={{ nginx_etc_dir }}/sites-available/default
|
||||
dest={{ nginx_etc_dir }}/sites-enabled/default
|
||||
state=link
|
||||
notify: reload nginx
|
||||
when: nginx_default_vhost is none
|
||||
|
|
|
@ -14,7 +14,7 @@ events {
|
|||
|
||||
http {
|
||||
types_hash_max_size {{ nginx_http_types_hash_max_size }};
|
||||
include /etc/nginx/mime.types;
|
||||
include {{ nginx_etc_dir }}/mime.types;
|
||||
|
||||
default_type {{ nginx_http_default_type }};
|
||||
access_log {{ nginx_http_access_log }};
|
||||
|
|
|
@ -2,20 +2,27 @@
|
|||
|
||||
- hosts: all
|
||||
pre_tasks:
|
||||
- name: APT_REPOSITORY | Install backports
|
||||
apt_repository: repo='deb http://httpredir.debian.org/debian {{ ansible_distribution_release }}-backports main' state=present
|
||||
- name: APT | Install needed packages
|
||||
apt: pkg={{ item }} update_cache=yes cache_valid_time=3600 state=present
|
||||
with_items:
|
||||
- php5-fpm
|
||||
- curl
|
||||
- fcgiwrap
|
||||
- name: SERVICE | Force start services
|
||||
service: name={{ item }} state=started
|
||||
register: sf
|
||||
with_items:
|
||||
- php5-fpm
|
||||
- fcgiwrap
|
||||
- block:
|
||||
- name: APT_REPOSITORY | Install backports
|
||||
apt_repository: repo='deb http://httpredir.debian.org/debian {{ ansible_distribution_release }}-backports main' state=present
|
||||
- name: APT | Install needed packages
|
||||
apt: pkg={{ item }} update_cache=yes cache_valid_time=3600 state=present
|
||||
with_items:
|
||||
- php5-fpm
|
||||
- curl
|
||||
- fcgiwrap
|
||||
- name: SERVICE | Force start services
|
||||
service: name={{ item }} state=started
|
||||
register: sf
|
||||
with_items:
|
||||
- php5-fpm
|
||||
- fcgiwrap
|
||||
when: ansible_distribution == 'Debian'
|
||||
- block:
|
||||
- name: SET_FACT | FreeBSD web user
|
||||
set_fact:
|
||||
nginx_user: 'www'
|
||||
when: ansible_distribution == 'FreeBSD'
|
||||
- name: PAUSE | Prevent bugs (CGI not fully loaded)
|
||||
pause: seconds=5
|
||||
when: sf.changed
|
||||
|
@ -29,6 +36,7 @@
|
|||
# Internal vars
|
||||
int_ansible_ssl_dir: '/etc/ansible-ssl'
|
||||
# Role vars
|
||||
nginx_worker_processes: 1 # Ansible+FreeBSD can't detect CPU number
|
||||
nginx_backports: true
|
||||
nginx_php: true
|
||||
nginx_upstreams:
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
nginx_events_use: 'epoll'
|
||||
nginx_pid: '/run/nginx.pid'
|
||||
nginx_etc_dir: '/etc/nginx'
|
|
@ -0,0 +1,5 @@
|
|||
nginx_events_use: 'kqueue'
|
||||
nginx_pid: '/var/run/nginx.pid'
|
||||
nginx_etc_dir: '/usr/local/etc/nginx'
|
||||
|
||||
# TODO: it's a dirty to force variable here!
|
Loading…
Reference in New Issue