[Plone] Application added

Plone is The Ultimate Enterprise Open Source CMS. The Plone CMS is one
of the most secure website systems available. This high security
standard has garnered the attention of many security conscious
organizations and government agencies including NASA and the FBI, who
picked Plone for their Enterprise Web CMS solution.

Change-Id: I8ef285bc1803e646246ba96aaab19f3b2eb1e2ff
This commit is contained in:
emashkin 2016-07-24 08:15:39 +03:00
parent 5c0871a2b6
commit 1335a68ceb
6 changed files with 289 additions and 0 deletions

View File

@ -0,0 +1,68 @@
# Plone uses GPL version 2 as its license. As of summer 2009, there are
# no active plans to upgrade to GPL version 3.
# You may obtain a copy of the License at
#
# http://www.gnu.org
#
Namespaces:
=: org.openstack.apps.plone
std: io.murano
res: io.murano.resources
sys: io.murano.system
Name: PloneServer
Extends: std:Application
Properties:
instance:
Contract: $.class(res:Instance).notNull()
pathname:
Contract: $.string()
password:
Contract: $.string()
port:
Contract: $.string()
Methods:
.init:
Body:
- $._environment: $.find(std:Environment).require()
deploy:
Body:
- If: not $.getAttr(deployed, false)
Then:
- $._environment.reporter.report($this, 'Creating VM for Plone Server.')
- $securityGroupIngress:
- ToPort: 80
FromPort: 80
IpProtocol: tcp
External: true
- ToPort: 443
FromPort: 443
IpProtocol: tcp
External: true
- ToPort: $.port
FromPort: $.port
IpProtocol: tcp
External: true
- $._environment.securityGroupManager.addGroupIngress($securityGroupIngress)
- $.instance.deploy()
- $resources: new(sys:Resources)
- $template: $resources.yaml('DeployPloneServer.template').bind(dict(
pathname => $.pathname,
password => $.password,
port => $.port
))
- $._environment.reporter.report($this, 'Instance is created. Deploying Plone')
- $.instance.agent.call($template, $resources)
- $._environment.reporter.report($this, 'Plone Server is installed.')
- If: $.instance.assignFloatingIp
Then:
- $host: $.instance.floatingIpAddress
Else:
- $host: $.instance.ipAddresses.first()
- $._environment.reporter.report($this, format('Plone Server is available at http://{0}:{1}', $host, $.port))
- $.setAttr(deployed, true)

View File

@ -0,0 +1,28 @@
# Plone uses GPL version 2 as its license. As of summer 2009, there are
# no active plans to upgrade to GPL version 3.
# You may obtain a copy of the License at
#
# http://www.gnu.org
#
FormatVersion: 2.0.0
Version: 1.0.0
Name: Deploy Plone
Parameters:
pathname: $pathname
password: $password
port: $port
Body: |
return ploneDeploy('{0} {1} {2}'.format(args.pathname, args.password, args.port)).stdout
Scripts:
ploneDeploy:
Type: Application
Version: 1.0.0
EntryPoint: runPloneDeploy.sh
Files: []
Options:
captureStdout: true
captureStderr: true

View File

@ -0,0 +1,41 @@
#!/bin/bash
#
# Plone uses GPL version 2 as its license. As of summer 2009, there are
# no active plans to upgrade to GPL version 3.
# You may obtain a copy of the License at
#
# http://www.gnu.org
#
PL_PATH="$1"
PL_PASS="$2"
PL_PORT="$3"
# Write log. Redirect stdout & stderr into log file:
exec &> /var/log/runPloneDeploy.log
# echo "Installing all packages."
sudo apt-get update
# Install the operating system software and libraries needed to run Plone:
sudo apt-get -y install python-setuptools python-dev build-essential libssl-dev libxml2-dev libxslt1-dev libbz2-dev libjpeg62-dev
# Install optional system packages for the handling of PDF and Office files. Can be omitted:
sudo apt-get -y install libreadline-dev wv poppler-utils
# Download the latest Plone unified installer:
wget --no-check-certificate https://launchpad.net/plone/5.0/5.0.4/+download/Plone-5.0.4-UnifiedInstaller.tgz
# Unzip the latest Plone unified installer:
tar -xvf Plone-5.0.4-UnifiedInstaller.tgz
cd Plone-5.0.4-UnifiedInstaller
# Set the port that Plone will listen to on available network interfaces. Editing "http-address" param in buildout.cfg file:
sed -i "s/^http-address = [0-9]*$/http-address = ${PL_PORT}/" buildout_templates/buildout.cfg
# Run the Plone installer in standalone mode
./install.sh --password="${PL_PASS}" --target="${PL_PATH}" standalone
# Start Plone
cd "${PL_PATH}/zinstance"
bin/plonectl start

130
Plone/package/UI/ui.yaml Normal file
View File

@ -0,0 +1,130 @@
# Plone uses GPL version 2 as its license. As of summer 2009, there are
# no active plans to upgrade to GPL version 3.
# You may obtain a copy of the License at
#
# http://www.gnu.org
#
Version: 2.3
Application:
?:
type: org.openstack.apps.plone.PloneServer
pathname: $.appConfiguration.pathname
password: $.appConfiguration.password
port: $.appConfiguration.port
instance:
?:
type: io.murano.resources.LinuxMuranoInstance
name: generateHostname($.instanceConfiguration.unitNamingPattern, 1)
flavor: $.instanceConfiguration.flavor
image: $.instanceConfiguration.osImage
keyname: $.instanceConfiguration.keyPair
availabilityZone: $.instanceConfiguration.availabilityZone
assignFloatingIp: $.appConfiguration.assignFloatingIP
Forms:
- appConfiguration:
fields:
- name: license
type: string
description: GPL License, Version 2
hidden: true
required: false
- name: pathname
type: string
label: Installation pathname
required: false
initial: '/opt/plone/'
description: >-
Use to specify the top-level path for installation.
- name: password
type: string
label: Admin password
required: false
initial: 'admin'
description: >-
Enter administrative password for Plone.
- name: port
type: string
label: Port
required: false
initial: '8080'
description: >-
Specify the port that Plone will listen to
on available network interfaces.
- name: assignFloatingIP
type: boolean
label: Assign Floating IP
description: >-
Select to true to assign floating IP automatically.
initial: false
required: false
- name: dcInstances
type: integer
hidden: true
initial: 1
- instanceConfiguration:
fields:
- name: title
type: string
required: false
hidden: true
description: Specify some instance parameters on which the application would be created
- name: flavor
type: flavor
label: Instance flavor
description: >-
Select registered in Openstack flavor. Consider that
application performance depends on this parameter
requirements:
min_vcpus: 1
min_memory_mb: 256
required: false
- name: minrequirements
type: string
label: Minumum requirements
description: |
- Minimum 256 MB RAM and 512 MB of swap space per Plone site
- Minimum 512 MB hard disk space
hidden: true
required: false
- name: recrequirements
type: string
label: Recommended
description: |
- 2 GB or more RAM per Plone site
- 40 GB or more hard disk space
hidden: true
required: false
- name: osImage
type: image
imageType: linux
label: Instance image
description: >-
Select a valid image for the application. The image
should already be prepared and registered in Glance
- name: keyPair
type: keypair
label: Key Pair
description: >-
Select the Key Pair to control access to instances. You can login to
instances using this KeyPair after the deployment of application.
required: false
- name: availabilityZone
type: azone
label: Availability zone
description: Select availability zone where the application would be installed.
required: false
- name: unitNamingPattern
type: string
label: Instance Naming Pattern
required: false
maxLength: 64
regexpValidator: '^[a-zA-z][-_\w]*$'
errorMessages:
invalid: Just letters, numbers, underscores and hyphens are allowed.
helpText: Just letters, numbers, underscores and hyphens are allowed.
description: >-
Specify a string, that will be used in instance hostname.
Just A-Z, a-z, 0-9, dash and underline are allowed.

BIN
Plone/package/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

@ -0,0 +1,22 @@
# Plone uses GPL version 2 as its license. As of summer 2009, there are
# no active plans to upgrade to GPL version 3.
# You may obtain a copy of the License at
#
# http://www.gnu.org
#
Format: 1.3
Type: Application
FullName: org.openstack.apps.plone.PloneServer
Name: Plone CMS
Description: |
The Ultimate Open Source Enterprise CMS.
The Plone CMS is one of the most secure
website systems available. This installer
lets you deploy Plone in standalone mode.
Requires Ubuntu 14.04 image with
preinstalled murano-agent.
Author: 'Evgeniy Mashkin'
Tags: [CMS, WCM]
Classes:
org.openstack.apps.plone.PloneServer: PloneServer.yaml