mirror of
https://github.com/snipe/snipe-it.git
synced 2024-12-27 06:29:47 -08:00
260 lines
7 KiB
YAML
260 lines
7 KiB
YAML
|
---
|
||
|
- name: Set up local server
|
||
|
hosts: all
|
||
|
remote_user: vagrant
|
||
|
become_user: root
|
||
|
become_method: sudo
|
||
|
vars:
|
||
|
- ansible_python_interpreter: /usr/local/bin/python2.7
|
||
|
gather_facts: no
|
||
|
|
||
|
# Tasks
|
||
|
tasks:
|
||
|
|
||
|
#
|
||
|
# Update the PKG database
|
||
|
#
|
||
|
- name: Upgrade PKG database
|
||
|
raw: sudo pkg upgrade -y
|
||
|
|
||
|
#
|
||
|
# Mount the shared folders
|
||
|
#
|
||
|
- name: Update Vagrant Shared Folders
|
||
|
command: "{{ item }}"
|
||
|
with_items:
|
||
|
- sysrc rpc_lockd_enable=YES
|
||
|
- sysrc rpc_statd_enable=YES
|
||
|
become: true
|
||
|
|
||
|
#
|
||
|
# Install required utilities
|
||
|
#
|
||
|
- name: Install Utilities
|
||
|
pkgng:
|
||
|
name: "{{ item }}"
|
||
|
state: present
|
||
|
with_items:
|
||
|
- openssl
|
||
|
- node
|
||
|
- npm
|
||
|
- git
|
||
|
- nano
|
||
|
- wget
|
||
|
- bash
|
||
|
become: true
|
||
|
|
||
|
#
|
||
|
# Install php and php dependancies
|
||
|
#
|
||
|
- name: Install PHP dependancies
|
||
|
pkgng:
|
||
|
name: "{{ item }}"
|
||
|
state: present
|
||
|
with_items:
|
||
|
- php72
|
||
|
- php72-zip
|
||
|
- php72-zlib
|
||
|
- php72-extensions
|
||
|
- php72-mbstring
|
||
|
- php72-openssl
|
||
|
# - php72-mysqli
|
||
|
- php72-curl
|
||
|
- php72-soap
|
||
|
- php72-pdo_mysql
|
||
|
# - php72-pdo_pgsql
|
||
|
- php72-ldap
|
||
|
- php72-curl
|
||
|
- php72-fileinfo
|
||
|
- php72-bcmath
|
||
|
- php72-gd
|
||
|
become: true
|
||
|
|
||
|
#
|
||
|
# Create a php.ini file
|
||
|
#
|
||
|
- name: PHP INI check
|
||
|
stat:
|
||
|
path: /usr/local/etc/php.ini
|
||
|
register: php_ini_exits
|
||
|
|
||
|
- name: Create PHP ini
|
||
|
command: cp /usr/local/etc/php.ini-development /usr/local/etc/php.ini
|
||
|
become: true
|
||
|
when: not php_ini_exits.stat.exists
|
||
|
|
||
|
- name: Enable PHP-FPM auto-start
|
||
|
command: sysrc php_fpm_enable=YES
|
||
|
become: true
|
||
|
|
||
|
- name: Start PHP-FPM service
|
||
|
service:
|
||
|
name: php-fpm
|
||
|
state: started
|
||
|
become: true
|
||
|
|
||
|
#
|
||
|
# Install the lastest version of composer
|
||
|
#
|
||
|
- name: Composer check
|
||
|
stat:
|
||
|
path: /usr/local/bin/composer
|
||
|
register: composer_exits
|
||
|
|
||
|
- name: Install Composer
|
||
|
shell: |
|
||
|
EXPECTED_SIGNATURE=$(wget -q -O - https://composer.github.io/installer.sig)
|
||
|
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
|
||
|
ACTUAL_SIGNATURE=$(php -r "echo hash_file('SHA384', 'composer-setup.php');")
|
||
|
|
||
|
if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]
|
||
|
then
|
||
|
>&2 echo 'ERROR: Invalid installer signature'
|
||
|
rm composer-setup.php
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
php composer-setup.php --quiet
|
||
|
RESULT=$?
|
||
|
rm composer-setup.php
|
||
|
mv composer.phar /usr/local/bin/composer
|
||
|
exit $RESULT
|
||
|
when: not composer_exits.stat.exists
|
||
|
become: true
|
||
|
|
||
|
#
|
||
|
# Install MySQL Server
|
||
|
|
||
|
- name: Install MySQL 5.7
|
||
|
pkgng:
|
||
|
name: mysql57-server
|
||
|
state: present
|
||
|
become: true
|
||
|
register: sql_server
|
||
|
|
||
|
- name: Start MySQL server
|
||
|
service:
|
||
|
name: mysql-server
|
||
|
state: started
|
||
|
become: true
|
||
|
|
||
|
- name: MySQL 5.7 auto-start
|
||
|
command: sysrc mysql_enable=YES
|
||
|
become: true
|
||
|
when: sql_server.changed == true
|
||
|
|
||
|
- name: Get MySQL root password
|
||
|
command: tail -1 /root/.mysql_secret
|
||
|
register: myql_root_pwd
|
||
|
become: true
|
||
|
when: sql_server.changed == true
|
||
|
|
||
|
- name: Change MySQL root password
|
||
|
command: mysqladmin -u root -p'{{myql_root_pwd.stdout}}' password vagrant
|
||
|
when: sql_server.changed == true
|
||
|
|
||
|
- name: Enable remote mysql
|
||
|
replace:
|
||
|
path: /usr/local/etc/mysql/my.cnf
|
||
|
regexp: "127.0.0.1"
|
||
|
replace: "0.0.0.0"
|
||
|
become: true
|
||
|
when: sql_server.changed == true
|
||
|
|
||
|
- name: Grant user vagrant privelages
|
||
|
shell: mysql -u root -pvagrant -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'vagrant' WITH GRANT OPTION; FLUSH PRIVILEGES;"
|
||
|
become: true
|
||
|
when: sql_server.changed == true
|
||
|
ignore_errors: true
|
||
|
|
||
|
- name: Restart MySQL server
|
||
|
service:
|
||
|
name: mysql-server
|
||
|
state: restarted
|
||
|
become: true
|
||
|
|
||
|
|
||
|
#
|
||
|
# Install Apache Web Server
|
||
|
#
|
||
|
- name: Install Apache 2.4
|
||
|
pkgng:
|
||
|
name: apache24
|
||
|
state: present
|
||
|
become: true
|
||
|
register: apache24_server
|
||
|
|
||
|
- name: Apache 2.4 auto-start
|
||
|
command: sysrc apache24_enable=YES
|
||
|
become: true
|
||
|
when: apache24_server.changed == true
|
||
|
|
||
|
- name: Enable Apache modules
|
||
|
replace:
|
||
|
path: /usr/local/etc/apache24/httpd.conf
|
||
|
regexp: "#{{ item }}"
|
||
|
replace: "{{ item }}"
|
||
|
become: true
|
||
|
with_items:
|
||
|
- LoadModule rewrite_module libexec/apache24/mod_rewrite.so
|
||
|
- LoadModule vhost_alias_module libexec/apache24/mod_vhost_alias.so
|
||
|
- LoadModule deflate_module libexec/apache24/mod_deflate.so
|
||
|
- LoadModule expires_module libexec/apache24/mod_expires.so
|
||
|
- LoadModule mpm_worker_module libexec/apache24/mod_mpm_worker.so
|
||
|
- LoadModule proxy_fcgi_module libexec/apache24/mod_proxy_fcgi.so
|
||
|
- LoadModule proxy_module libexec/apache24/mod_proxy.so
|
||
|
- Include etc/apache24/extra/httpd-vhosts.conf
|
||
|
when: apache24_server.changed == true
|
||
|
|
||
|
- name: Disable Apache modules
|
||
|
replace:
|
||
|
path: /usr/local/etc/apache24/httpd.conf
|
||
|
regexp: "{{ item }}"
|
||
|
replace: "#{{ item }}"
|
||
|
become: true
|
||
|
with_items:
|
||
|
- LoadModule mpm_prefork_module libexec/apache24/mod_mpm_prefork.so
|
||
|
when: apache24_server.changed == true
|
||
|
|
||
|
- name: Backup vhosts
|
||
|
command: cp /usr/local/etc/apache24/extra/httpd-vhosts.conf /usr/local/etc/apache24/extra/httpd-vhosts.conf.bak
|
||
|
become: true
|
||
|
when: apache24_server.changed == true
|
||
|
|
||
|
- name: Truncate vhosts
|
||
|
command: truncate -s 0 /usr/local/etc/apache24/extra/httpd-vhosts.conf
|
||
|
become: true
|
||
|
when: apache24_server.changed == true
|
||
|
|
||
|
- name: Set up vhost
|
||
|
blockinfile:
|
||
|
path: "/usr/local/etc/apache24/extra/httpd-vhosts.conf"
|
||
|
block: |
|
||
|
<VirtualHost *>
|
||
|
DocumentRoot /usr/local/www/apache24/data/public
|
||
|
ServerName vagrant.app
|
||
|
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/usr/local/www/apache24/data/public/$1
|
||
|
DirectoryIndex /index.php index.php
|
||
|
<Directory /usr/local/www/apache24/data/public>
|
||
|
Options -Indexes +FollowSymLinks
|
||
|
AllowOverride All
|
||
|
Require all granted
|
||
|
</Directory>
|
||
|
</VirtualHost>
|
||
|
become: true
|
||
|
when: apache24_server.changed == true
|
||
|
|
||
|
- name: Map apache dir to local folder
|
||
|
shell: |
|
||
|
if ! [ -L /var/www ]; then
|
||
|
rm -rf /usr/local/www/apache24/data;
|
||
|
ln -fs /vagrant /usr/local/www/apache24/data;
|
||
|
fi
|
||
|
become: true
|
||
|
when: apache24_server.changed == true
|
||
|
|
||
|
- name: Start Apache 2.4 server
|
||
|
service:
|
||
|
name: apache24
|
||
|
state: started
|
||
|
become: true
|