mirror of
https://github.com/krislamo/vagrant-easyredmine
synced 2025-09-09 14:09:29 +00:00
many fixes; now run redmine installer via wrapper
This commit is contained in:
@@ -4,3 +4,47 @@
|
||||
- mysql-devel
|
||||
- mariadb-server
|
||||
- MySQL-python
|
||||
|
||||
|
||||
- service: name='{{ redmine_db_service_provider }}'
|
||||
state=started
|
||||
sudo: yes
|
||||
|
||||
- mysql_db: name='{{ redmine_db_name }}'
|
||||
state=present
|
||||
encoding=utf8
|
||||
sudo: yes
|
||||
register: redmine_db_created
|
||||
|
||||
# source database may not have same name as VM db.
|
||||
# So remove CREATE or USE statements from dump.
|
||||
# while unpacking.
|
||||
- name: unpack mysql dump file
|
||||
shell: "/usr/bin/gunzip -c {{ redmine_db_dump_file }} | /usr/bin/sed '/^CREATE DATABASE \\|^USE /d' > {{ _redmine_db_import_file }}"
|
||||
args:
|
||||
creates: '{{ _redmine_db_import_file }}'
|
||||
when: do_redmine_db_import == True
|
||||
|
||||
- stat: path='{{ _redmine_db_import_success }}'
|
||||
register: redmine_db_import_done
|
||||
when: do_redmine_db_import == True
|
||||
|
||||
- name: import database
|
||||
mysql_db: name='{{ redmine_db_name }}'
|
||||
state=import
|
||||
target='{{ _redmine_db_import_file }}'
|
||||
register: redmine_db_import
|
||||
when: do_redmine_db_import == True and (redmine_db_import_done.stat.exists == False or redmine_db_created|changed)
|
||||
|
||||
- file: path='{{ _redmine_db_import_success }}'
|
||||
state=touch
|
||||
when: do_redmine_db_import == True and redmine_db_import_done.stat.exists == False and redmine_db_import|success
|
||||
|
||||
- name: create db user
|
||||
mysql_user: name='{{ redmine_db_user }}'
|
||||
password='{{ redmine_db_password }}'
|
||||
append_privs=yes
|
||||
priv='{{ redmine_db_name }}.*:ALL'
|
||||
state=present
|
||||
sudo: yes
|
||||
|
||||
|
@@ -8,88 +8,18 @@
|
||||
# mode=0644
|
||||
# sudo: yes
|
||||
|
||||
- yum: name=epel-release
|
||||
sudo: yes
|
||||
- include: database.yml
|
||||
|
||||
- get_url: url=https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo
|
||||
dest=/etc/yum.repos.d/passenger.repo
|
||||
sudo: yes
|
||||
- rpm_key: key=https://packagecloud.io/gpg.key
|
||||
sudo: yes
|
||||
- include: redmine.yml
|
||||
|
||||
# this makecache is mostly because I can not find any other way to fully import the GPG.
|
||||
# key for the Passenger repo. 'rpm --import' is not sufficient.
|
||||
- command: yum -q makecache -y --disablerepo='*' --enablerepo='passenger*'
|
||||
sudo: yes
|
||||
changed_when: False
|
||||
- include: nginx.yml
|
||||
|
||||
- yum: name='{{ item }}'
|
||||
sudo: yes
|
||||
with_items:
|
||||
- unzip
|
||||
- rubygems
|
||||
- ruby-devel
|
||||
- zlib-devel
|
||||
- openssl-devel
|
||||
- gcc-c++
|
||||
- mysql-devel
|
||||
- ImageMagick-devel
|
||||
- mariadb-server
|
||||
- MySQL-python
|
||||
- nginx
|
||||
- passenger
|
||||
|
||||
- gem: name='{{ item }}'
|
||||
sudo: yes
|
||||
with_items:
|
||||
- bundler
|
||||
- redmine-installer
|
||||
|
||||
- stat: path='{{ cache_dir }}/{{ installer_package }}'
|
||||
register: has_installer_package
|
||||
|
||||
- name: download installer
|
||||
get_url: url='http://software.apidb.org/source/{{ installer_package }}'
|
||||
dest='{{ cache_dir }}'
|
||||
mode=0640
|
||||
force=no
|
||||
when: has_installer_package.stat.exists == False
|
||||
|
||||
- service: name='{{ redmine_db_service }}'
|
||||
state=started
|
||||
sudo: yes
|
||||
|
||||
- mysql_db: name='{{ redmine_db_name }}'
|
||||
state=present
|
||||
encoding=utf8
|
||||
sudo: yes
|
||||
|
||||
- mysql_user: name='{{ redmine_db_user }}'
|
||||
password='{{ redmine_db_password }}'
|
||||
append_privs=yes
|
||||
priv='{{ redmine_db_name }}.*:ALL'
|
||||
state=present
|
||||
sudo: yes
|
||||
|
||||
#- command: ~/bin/redmine install '{{ cache_dir }}/{{ installer_package }}'
|
||||
#- command: ~/bin/redmine install '{{ installer_package }}'
|
||||
# sudo: no
|
||||
|
||||
- template: dest=/etc/nginx/conf.d/easyredmine.conf
|
||||
src=easyredmine.conf.j2
|
||||
sudo: yes
|
||||
notify: restart nginx
|
||||
|
||||
- template: dest=/etc/nginx/conf.d/passenger.conf
|
||||
src=passenger.conf.j2
|
||||
sudo: yes
|
||||
notify: restart nginx
|
||||
|
||||
- service: name=nginx
|
||||
state=started
|
||||
sudo: yes
|
||||
# when: redmine_db_created|changed
|
||||
|
||||
|
||||
# {{ redmine_root }}
|
||||
# {{ redmine_root_dir }}
|
||||
# 1
|
||||
# {{ redmine_db_name }}
|
||||
# {{ redmine_db_host }}
|
||||
|
35
roles/easyredmine/tasks/nginx.yml
Normal file
35
roles/easyredmine/tasks/nginx.yml
Normal file
@@ -0,0 +1,35 @@
|
||||
- get_url: url=https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo
|
||||
dest=/etc/yum.repos.d/passenger.repo
|
||||
sudo: yes
|
||||
- rpm_key: key=https://packagecloud.io/gpg.key
|
||||
sudo: yes
|
||||
|
||||
# this makecache is mostly because I can not find any other way to fully
|
||||
# import the GPG. key for the Passenger repo. 'rpm --import' is not
|
||||
# sufficient.
|
||||
- command: yum -q makecache -y --disablerepo='*' --enablerepo='passenger*'
|
||||
sudo: yes
|
||||
changed_when: False
|
||||
|
||||
- yum: name=epel-release
|
||||
sudo: yes
|
||||
|
||||
- yum: name='{{ item }}'
|
||||
sudo: yes
|
||||
with_items:
|
||||
- nginx
|
||||
- passenger
|
||||
|
||||
- template: dest=/etc/nginx/conf.d/easyredmine.conf
|
||||
src=easyredmine.conf.j2
|
||||
sudo: yes
|
||||
notify: restart nginx
|
||||
|
||||
- template: dest=/etc/nginx/conf.d/passenger.conf
|
||||
src=passenger.conf.j2
|
||||
sudo: yes
|
||||
notify: restart nginx
|
||||
|
||||
- service: name=nginx
|
||||
state=started
|
||||
sudo: yes
|
52
roles/easyredmine/tasks/redmine.yml
Normal file
52
roles/easyredmine/tasks/redmine.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
- yum: name='{{ item }}'
|
||||
sudo: yes
|
||||
with_items:
|
||||
- unzip
|
||||
- rubygems
|
||||
- ruby-devel
|
||||
- zlib-devel
|
||||
- openssl-devel
|
||||
- gcc-c++
|
||||
- ImageMagick-devel
|
||||
- expect # for install_wrapper
|
||||
|
||||
- gem: name='{{ item }}'
|
||||
sudo: yes
|
||||
with_items:
|
||||
- bundler
|
||||
- redmine-installer
|
||||
|
||||
- stat: path='{{ installer_package }}'
|
||||
register: has_installer_package
|
||||
sudo: no
|
||||
|
||||
- name: download installer
|
||||
get_url: url='{{ installer_package_url }}'
|
||||
dest='{{ cache_dir }}'
|
||||
mode=0640
|
||||
force=no
|
||||
when: has_installer_package.stat.exists == False
|
||||
sudo: no
|
||||
|
||||
- template: dest='{{ _redmine_install_wrapper }}'
|
||||
src=install_wrapper.j2
|
||||
mode=750
|
||||
sudo: no
|
||||
|
||||
- name: delete contents of redmine root directory
|
||||
file: path='{{ redmine_root_dir }}'
|
||||
state=absent
|
||||
sudo: yes
|
||||
when: redmine_db_created|changed
|
||||
|
||||
- file: path='{{ redmine_root_dir }}'
|
||||
state=directory
|
||||
owner=vagrant
|
||||
mode=755
|
||||
sudo: yes
|
||||
register: mk_redmine_root_dir
|
||||
|
||||
- name: run redmine installer
|
||||
command: '{{ _redmine_install_wrapper }}'
|
||||
when: mk_redmine_root_dir|changed
|
||||
sudo: no
|
Reference in New Issue
Block a user