diff --git a/pillars/roles/database/project.sls b/pillars/roles/database/project.sls new file mode 100644 index 0000000..b7b3c49 --- /dev/null +++ b/pillars/roles/database/project.sls @@ -0,0 +1,9 @@ +database: + users: + openproject: + host: project.actcur.com + databases: + openproject: + openproject: + host: project.actcur.com + grant: all privileges diff --git a/pillars/roles/nginx/openproject.sls b/pillars/roles/nginx/openproject.sls new file mode 100644 index 0000000..097fbf7 --- /dev/null +++ b/pillars/roles/nginx/openproject.sls @@ -0,0 +1,13 @@ +nginx: + project: + auth: none + https: + port: 8080 + prot: http + +portal: + Misc: + project: + name: Project + summary: OpenProject Server + public: true diff --git a/pillars/servers/roles/server/project.sls b/pillars/servers/roles/server/project.sls index 0a9b10c..e5978c7 100644 --- a/pillars/servers/roles/server/project.sls +++ b/pillars/servers/roles/server/project.sls @@ -4,3 +4,5 @@ grains: - ssh - nrpe - saltminion + - openproject + - nginx-proxy diff --git a/states/roles/build/openproject/init.sls b/states/roles/build/openproject/init.sls new file mode 100644 index 0000000..f4ec6bb --- /dev/null +++ b/states/roles/build/openproject/init.sls @@ -0,0 +1,18 @@ +#Note: Must run on CentOS currently + +/etc/yum.repos.d/openproject-ce.repo: + file.managed: + - source: https://dl.packager.io/srv/opf/openproject-ce/stable/7/installer/el/7.repo + - skip_verify: true + +openproject: + pkg.installed: + - name: openproject + +/etc/openproject/installer.dat: + file.managed: + - source: salt://roles/build/openproject/installer.dat + +openproject-configure: + cmd.run: + - name: "openproject configure" diff --git a/states/roles/build/openproject/installer.dat b/states/roles/build/openproject/installer.dat new file mode 100644 index 0000000..c6a0649 --- /dev/null +++ b/states/roles/build/openproject/installer.dat @@ -0,0 +1,25 @@ +mysql/autoinstall reuse +mysql/db_host sql.actcur.com +mysql/db_port 3306 +mysql/db_username openproject +mysql/db_password {%- include 'secure/passwords/openproject_db_password.txt' -%} +mysql/db_name openproject +mysql/db_source_host project.actcur.com +mysql/ssl no +server/autoinstall install +server/variant apache2 +server/hostname project.actcur.com +server/server_path_prefix +server/ssl no +repositories/api-key {%- include 'secure/passwords/openproject_api_password.txt' -%} +repositories/svn-install skip +repositories/git-install skip +smtp/autoinstall smtp +smtp/authentication login +smtp/host smtp.zoho.com +smtp/port 587 +smtp/username notifications@actcur.com +smtp/password {%- include 'secure/passwords/openproject_notifications_password.txt' -%} +smtp/domain project.actcur.com +smtp/admin_email ejparker@actcur.com +memcached/autoinstall install diff --git a/states/roles/maintain/openproject/apache.conf b/states/roles/maintain/openproject/apache.conf new file mode 100644 index 0000000..5023265 --- /dev/null +++ b/states/roles/maintain/openproject/apache.conf @@ -0,0 +1,14 @@ +Include /etc/openproject/addons/apache2/includes/server/*.conf + + + ServerName project.actcur.com + DocumentRoot /opt/openproject/public + + ProxyRequests off + + Include /etc/openproject/addons/apache2/includes/vhost/*.conf + + # Can't use Location block since it would overshadow all the other proxypass directives on CentOS + ProxyPass / http://127.0.0.1:6000/ retry=0 + ProxyPassReverse / http://127.0.0.1:6000/ + diff --git a/states/roles/maintain/openproject/init.sls b/states/roles/maintain/openproject/init.sls new file mode 100644 index 0000000..e4a0d29 --- /dev/null +++ b/states/roles/maintain/openproject/init.sls @@ -0,0 +1,29 @@ +#Note: Must run on CentOS currently + +/etc/yum.repos.d/openproject-ce.repo: + file.managed: + - source: https://dl.packager.io/srv/opf/openproject-ce/stable/7/installer/el/7.repo + - skip_verify: true + +openproject: + pkg.installed: + - name: openproject + +openproject-apache: + file.managed: + - name: /etc/httpd/conf.d/openproject.conf + - source: salt://roles/maintain/openproject/apache.conf + +openproject-apache-port: + file.replace: + - name: /etc/httpd/conf/httpd.conf + - pattern: '^Listen 80$' + - repl: 'Listen 8080' + +openproject-apache-service: + service.running: + - name: httpd + - enable: true + - watch: + - file: openproject-apache + - file: openproject-apache-port