...
Stratos DevOps edits the cloud-controller.xml
to configure IaaS. For Please see Cloud Controller Configuration Files, for element definitions on the sub-sections in the following cloud-controller.
xml file, please see Cloud Controller Configuration Filesxml
file.
Code Block |
---|
<cloudController xmlns:svns="http://org.wso2.securevault/configuration"> <svns:secureVault provider="org.wso2.securevault.secret.handler.SecretManagerSecretCallbackHandler" /> <dataPublisher enable="false"> <!-- BAM Server Info - default values are 'admin' and 'admin' Optional element. --> <bamServer> <!-- BAM server URL should be specified in carbon.xml --> <adminUserName>admin</adminUserName> <adminPassword svns:secretAlias="cloud.controller.bam.server.admin.password">admin</adminPassword> </bamServer> <!-- Default cron expression is '1 * * * * ? *' meaning 'first second of every minute'.Optional element. --> <cron>1 * * * * ? *</cron> <!-- Cassandra cluster related info --> <!--cassandraInfo> <connectionUrl>localhost:9160</connectionUrl> <userName>admin</userName> <password svns:secretAlias="cloud.controller.cassandra.server.password">admin</password> </cassandraInfo--> </dataPublisher> <topologySync enable="true"> <!-- MB server info --> <mbServerUrl>MB_HOSTNAME:MB_LISTEN_PORT</mbServerUrl> <cron>1 * * * * ? *</cron> </topologySync> <!-- Specify the properties that are common to an IaaS here. This element is not necessary [0..1]. But you can use this section to avoid specifying same property over and over again. --> <iaasProviders> <iaasProvider type="ec2" name="ec2 specific details"> <className>org.wso2.carbon.stratos.cloud.controller.iaases.AWSEC2Iaas</className> <provider>aws-ec2</provider> <identity svns:secretAlias="elastic.scaler.openstack.identity">EC2_IDENTITY</identity> <credential svns:secretAlias="elastic.scaler.openstack.credential">EC2_CREDENTIAL</credential> <scaleUpOrder>EC2_SCALEUP_ORDER</scaleUpOrder> <scaleDownOrder>EC2_SCALEDOWN_ORDER</scaleDownOrder> <property name="jclouds.ec2.ami-query" value="owner-id=XX-XX-XX;state=available;image-type=machine"/> <property name="availabilityZone" value="EC2_AVAILABILITY_ZONE"/> <property name="securityGroups" value="EC2_SECURITY_GROUPS"/> <property name="instanceType" value="EC2_INSTANCE_TYPE"/> <property name="keyPair" value="EC2_KEYPAIR"/> <imageId>EC2_IMAGE_ID</imageId> </iaasProvider> <iaasProvider type="openstack" name="openstack specific details"> <className>org.wso2.carbon.stratos.cloud.controller.iaases.OpenstackNovaIaas</className> <provider>openstack-nova</provider> <identity svns:secretAlias="cloud.controller.openstack.identity">OPENSTACK_IDENTITY</identity> <credential svns:secretAlias="cloud.controller.openstack.credential">OPENSTACK_CREDENTIAL</credential> <property name="jclouds.endpoint" value="OPENSTACK_ENDPOINT" /> <property name="jclouds.openstack-nova.auto-create-floating-ips" value="false"/> <property name="jclouds.api-version" value="2.0/" /> <scaleUpOrder>OPENSTACK_SCALEUP_ORDER</scaleUpOrder> <scaleDownOrder>OPENSTACK_SCALEDOWN_ORDER</scaleDownOrder> <property name="X" value="x" /> <property name="Y" value="y" /> <imageId>OPENSTACK_IMAGE_ID</imageId> </iaasProvider> </iaasProviders> </cloudController> |
...
There can be a single file or several files that the Cartridge Deployer creates for Cartridge configuration <cartridge>.xml,
to capture metadata about the Cartridge including the image ID's. Please see Element Definitions, for element definitions on the following Cartridge XML file.
Example:
repository/deployment/server/cartridges/php.xml
Code Block |
---|
<!-- Use below section to specify properties that are needed in order to start Cartridges. -->
<cartridges>
<!-- You can have 1..n cartridge elements. -->
<cartridge type="php" host="php.STRATOS_DOMAIN" provider="zend-provider" version="5.5" multiTenant="false">
<!-- cartridge element can have 0..n properties, and they'll be overwritten by the properties specified under iaasProvider child elements of cartridge element. -->
<displayName>PHP</displayName>
<description>PHP Cartridge</description>
<!-- A cartridge element should add a reference to an existing IaaS provider (specified in the above <iaasProviders> section) or it can create a completely new IaaS Provider (which should have a unique "type" attribute. -->
<iaasProvider type="openstack" >
<imageId>nova/3a4000c8-0973-421a-94f8-dbfe8b7b5250</imageId>
<property name="keyPair" value="stratos-demo"/>
<property name="instanceType" value="nova/1"/>
<property name="securityGroups" value="default"/>
<!--<property name="payload" value="resources/as.txt"/>-->
</iaasProvider>
<!--<iaasProvider type="ec2" >
<imageId>us-east-1/ami-ef49e786</imageId>
<property name="keyPair" value="aa"/>
<property name="securityGroups" value="default"/>
<property name="instanceType" value="m1.large"/>
<property name="payload" value="resources/as-ec2.txt"/>
</iaasProvider>-->
<deployment baseDir="/var/www">
<dir>www=copy#app#files#here</dir>
<dir>simplesamlphp=copy#saml#libraries#here</dir>
<dir>sql=copy#saml#libraries#here</dir>
</deployment>
<portMapping>
<http port="80" proxyPort="8280"/>
<https port="443" proxyPort="8243"/>
</portMapping>
<!--<appTypes>
<property name="axis2services" isBothmapping="false"/>
<property name="webapps" isBothmapping="true"/>
<property name="jaxwebapps" isBothmapping="true"/>
<property name="jaggeryapps" isBothmapping="true"/>
</appTypes>-->
</cartridge>
</cartridges> |
...
Service configurations can be a single file or several files. This file includes the domain, sub-domain and Cartridge type per service. Please see Element Definitions, for element definitions on the following service XML file.
Example:
repository/deployment/server/services/as.xml
Code Block |
---|
<service domain="wso2.appserver.domain" subDomain="__$default" tenantRange="*">
<cartridge type="appserver"/>
<host>appserver.s2.wso2.com</host>
<payload>/opt/wso2cc-1.0.0/repository/resources/payload/as-default.zip</payload>
</service> |
...