Skip to content
This repository has been archived by the owner on Feb 27, 2024. It is now read-only.
/ RMonEL7 Public archive

CFn-based automation to deploy EL7-hosted RedMine onto AWS

License

Notifications You must be signed in to change notification settings

plus3it/RMonEL7

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RedMine on EL7

This project is designed to facilitate the deployment of a modular, flexible, scalable RedMine configuration within AWS. The provided project-elements leverages a mix of tools to achieve this end:

  • CFn-based automation to deploy and manage the AWS components underpinning the overall service. Supported elements include

    • SES
    • ELB
    • EC2 - launched in a standalone or AutoScale group context
    • RDS - MySQL flavor via MySQL, MariaDB or Aurora
    • EFS
  • Deployment automation scripts to prepare an instance launced from a generic EL7 AMI to host the RedMine application

    • Appliction of STIG-hardening (with following notes/exceptions) via watchmaker.
      • FIPS-mode disabled due to underlying RedMine incompatibilities
      • STIG-compliant partitioning dependent on use of suitably-partitioned AMI (see spel project for an example, suitable AMI)
      • SEL-mode currently defaults to Permissive due to use of non-SEL'able filesystems (see EFS note, above)
    • Configuration of firewalld exceptions for HTTP service
    • Enablement of Software Collections (see SCL) repositories.
    • Installation and configuration of RedMine RPM dependencies (e.g. Ruby 2.4 from SCL)
  • Deployment automation scripts to handle the ininitial install and configuration of the RedMine application.

    • Launch-time compilation of RedMine and dependent gems
    • Configuration of RedMine to use RDS-hosted MySQL-compatible database. See the new stack document for discussion of issues around configuration of the RDS-hosted database.
    • Configuration of Apache HTTPD for Passenger
    • Installation of optional plugins — via "site" scripts (automation does not include, simply invokes such scripts)

    Note: because RedMine stores much of its runtime/continuing configuration information within a database, site-specific customizations are a (mostly) manual task that takes place after the deployment-automation tasks complete.

The expected deployment-model is as follows:

  • RDS to host persistent configuration and content elements
  • EFS to host persistent, file-based content elements. This content will be things like Git repository (bare) clones, images and other, file-type content. While this content can be stored in databases as BLOBs but is generally contraindicated. If migrating file-based content from an existing RedMine site, see the file migration document.
  • EC2 to host the operating environment - in this case Enterprise Linux 7 (e.g. RHEL, CentOS, etc.) - that hosts the RedMine runtime.
  • ELB to provide stable, internet-facing access to the application while allowing the lower-level components to all be run from not publicly-routed address-space.
  • SES to provide outbound mail-based notification capabilities to the OS (monitoring-alerts, etc.) and/or the RedMine service (account creation, password-change and other notification).

Scaling and availability is furnished primarily through native AWS services' capabilities: RDS an EFS both have built-in enhancedlreliability/availability and scalability functionality. Clustering of RedMine nodes (EC2 nodes) is not supported with this tool-set: use of AutoScaling Groups are the expected method for improving the baseline EC2-layer's availability.

Data protection is currently only provided within the RDS context. EFS is generally durable but is not further enhanced via backup tools in the current deployment automation tool-set.

Contribution and Other Guidelines

Please see the guidlines in the docs directory.

Build Status

Releases

No releases published

Packages

 
 
 

Languages