Hi, Please refer [1].
[1] https://github.com/wso2/carbon-platform-integration/tree/master/deployment-automation-framework Thanks, Suhan On Mon, Jan 26, 2015 at 6:41 AM, Suhan Dharmasuriya <[email protected]> wrote: > Hi, > > Git repo updated with deployment automation work done up until now. > Few sample configurations added. > Please find the link below [1]. > > [1] > https://github.com/suhand/Deployment-Automation/tree/master/deployment-automation-total-puppet > > Thanks, > Suhan > > On Tue, Jan 13, 2015 at 3:32 PM, Suhan Dharmasuriya <[email protected]> > wrote: > >> Hi, >> >> To control the puppet catalog run on each newly spawned instances as soon >> as an instance is spawned, we suspend the instance. >> Once all the instances are spawned, we resume instances one by one. >> It is during this stage that the product packs are being extracted and >> servers are being started via puppet catalog run. >> >> During this process if the order of server starts in the cluster nodes >> are not in the expected order, some nodes are unable to join the >> cluster. >> e.g.: Say in a worker/manager clustering pattern - pattern 2 [1] server >> starting order should be as follows. >> 1. elb >> 2. manager >> 3. worker >> If the order has changed, this will give rise to random results in each >> time we try to spawn the cluster, i.e. some nodes will be unable >> to join the cluster. >> >> Up until now we have been using time delays as a control mechanism. >> >> We have just introduced a different mechanism to check whether the server >> is running on a given port (currently 9443) and resume >> instances sequentially as mentioned in the deployment.cfg file [3]. >> >> This has been tested on OpenStack environment in a simple cluster (elb, >> appserver manager node, appserver worker node) >> and test output as per the attached file [2]. >> >> Code: >> call("while ! echo exit | nc "+currentNodeIPAddress+" 9443; do sleep 10; >> done", shell="True") >> print "Server "+vm+" is online on port 9443..." >> >> *Should there be an order of starting servers on a cluster in the first >> place?* >> >> [1] https://docs.wso2.com/pages/viewpage.action?pageId=32346071 >> [2] Attached file - testOutput_portListener.txt >> [3] >> https://github.com/suhand/Deployment-Automation/blob/master/deployment-automation-total-puppet/python_scripts/deployment.cfg >> >> Thanks, >> Suhan >> >> On Tue, Jan 6, 2015 at 1:49 PM, Suhan Dharmasuriya <[email protected]> >> wrote: >> >>> Hi, >>> >>> We had a review discussion with DevOps on Wednesday Dec 17, 2014. >>> >>> Following are the further evaluations to be done. >>> >>> - Using puppet meta data service for information exchange >>> - Puppet lookup for DNS and set the IP in configuration file. >>> - Facts to read and fill puppet templates. >>> - Using Puppet DB for Nagios monitoring >>> - Need to evaluate Cacti for monitoring requirements. >>> >>> Thanks, >>> Suhan >>> >>> >>> >>> On Tue, Dec 16, 2014 at 2:47 PM, Krishantha Samaraweera < >>> [email protected]> wrote: >>> >>>> Hi Shankar, >>>> >>>> On Tue, Dec 16, 2014 at 12:55 PM, Selvaratnam Uthaiyashankar < >>>> [email protected]> wrote: >>>>> >>>>> Did you guys discuss with Chamith on this? >>>>> >>>> >>>> We are planning to have a review with DevOps this week. >>>> >>>> Thanks, >>>> Krishantha. >>>> >>>> >>>>> >>>>> Chamith, this is similar to what you guys are doing for cloud? >>>>> >>>>> On Tue, Dec 16, 2014 at 9:59 AM, Suhan Dharmasuriya <[email protected]> >>>>> wrote: >>>>> >>>>>> We have successfully migrated to the new cloud: >>>>>> https://openstackstg.private.wso2.com/ >>>>>> >>>>>> Hypervisor Summary as follows. >>>>>> Memory available 30.8 GB >>>>>> Disk available 1.8 TB >>>>>> VCPUs available 16 >>>>>> >>>>>> Thanks, >>>>>> Suhan >>>>>> >>>>>> On Tue, Dec 16, 2014 at 9:38 AM, Suhan Dharmasuriya <[email protected]> >>>>>> wrote: >>>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> We have introduced a new configuration file deployment.cfg [1]. >>>>>>> Python will load the relevant initial configurations from >>>>>>> this file including server node names. Therefore nodes.txt file is >>>>>>> removed. >>>>>>> >>>>>>> When loading node names in the cluster initially had a problem of >>>>>>> spawning instances in OpenStack in a random order. This issue was solved >>>>>>> using python collections.OrderedDict [3] instead of using default >>>>>>> dictionary (unordered). >>>>>>> >>>>>>> Cluster information is kept in a config.pp file [2]. >>>>>>> >>>>>>> [1] >>>>>>> https://github.com/suhand/Deployment-Automation/blob/master/deployment-automation-total-puppet/python_scripts/deployment.cfg >>>>>>> [2] >>>>>>> https://github.com/suhand/Deployment-Automation/blob/master/deployment-automation-total-puppet/python_scripts/config.pp >>>>>>> [3] >>>>>>> http://stackoverflow.com/questions/27483096/python-config-parser-array-sort-according-to-file-content-sequence/27483584#27483584 >>>>>>> >>>>>>> Thanks, >>>>>>> Suhan >>>>>>> >>>>>>> On Mon, Dec 15, 2014 at 11:27 AM, Suhan Dharmasuriya < >>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>> Adding Ramith... >>>>>>>> >>>>>>>> On Fri, Dec 12, 2014 at 11:43 AM, Suhan Dharmasuriya < >>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Fri, Dec 12, 2014 at 11:40 AM, Suhan Dharmasuriya < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> Hi all, >>>>>>>>>> >>>>>>>>>> We are working on developing a deployment automation process >>>>>>>>>> which will be integrated in to the test automation framework to run >>>>>>>>>> test >>>>>>>>>> suites on different product platforms. >>>>>>>>>> >>>>>>>>>> Following is the current process of deployment automation process. >>>>>>>>>> >>>>>>>>>> Nodes information file contains all the names of nodes in the >>>>>>>>>> cluster of which the collective behavior is tested. It will contain >>>>>>>>>> hostnames of the nodes such as appserver-mgr1 appserver-wkr1. >>>>>>>>>> >>>>>>>>>> Configuration data for each node in the cluster will be kept as a >>>>>>>>>> data structure in another configuration file which will be >>>>>>>>>> restructured >>>>>>>>>> according to the spawned instances information (in OpenStack) and >>>>>>>>>> reflected >>>>>>>>>> in puppet master. This configuration file was initially created as >>>>>>>>>> an xml >>>>>>>>>> file similar to the product configuration files following the same >>>>>>>>>> xml >>>>>>>>>> hierarchical pattern. Following DevOps practices the >>>>>>>>>> configuration xml file is removed and puppet data structure file is >>>>>>>>>> introduced. >>>>>>>>>> >>>>>>>>>> Using python novaclient API, equal number of instances are >>>>>>>>>> spawned in the environment (OpenStack). When instances are being >>>>>>>>>> created a >>>>>>>>>> preconfigured OpenStack image [1] will be used from an image >>>>>>>>>> repository. >>>>>>>>>> This image includes preconfigured puppet agent and ganglia client >>>>>>>>>> services >>>>>>>>>> (aware of puppet master and ganglia monitor locations). >>>>>>>>>> >>>>>>>>>> Once the instances are spawned in OpenStack, the relevant >>>>>>>>>> information of the node is retrieved using facter [2]. This >>>>>>>>>> information >>>>>>>>>> will be cross mapped and merged with the configuration file with the >>>>>>>>>> relevant information such as IP addresses, hostnames of the >>>>>>>>>> instances to >>>>>>>>>> create a puppet central configuration file. >>>>>>>>>> >>>>>>>>>> Puppet will be taking over its operations once this configuration >>>>>>>>>> file is in place. By mapping the hostname of the incoming puppet >>>>>>>>>> agent >>>>>>>>>> request against the configuration file, puppet master performs the >>>>>>>>>> following operations. >>>>>>>>>> >>>>>>>>>> - >>>>>>>>>> >>>>>>>>>> Ensure essential packages such as unzip are present in agent >>>>>>>>>> node prior starting server operations. >>>>>>>>>> - >>>>>>>>>> >>>>>>>>>> Remove old extractions and installations of conflicting >>>>>>>>>> product packs. >>>>>>>>>> - >>>>>>>>>> >>>>>>>>>> Install the defined jdk to the instance. >>>>>>>>>> - >>>>>>>>>> >>>>>>>>>> Extract product pack file. >>>>>>>>>> - >>>>>>>>>> >>>>>>>>>> Retrieve node specific values and update product pack >>>>>>>>>> configuration (axis2.xml, carbon.xml, catalina-server.xml, >>>>>>>>>> etc...). >>>>>>>>>> - >>>>>>>>>> >>>>>>>>>> Start the server with given server options. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> In future deployment automation module will be expanded to >>>>>>>>>> support OpenStack, EC2, Physical networked machines and Local >>>>>>>>>> environments. >>>>>>>>>> Currently development started with OpenStack using python novaclient >>>>>>>>>> API. >>>>>>>>>> Issues encountered and findings are logged in [3], [4] and [5]. >>>>>>>>>> >>>>>>>>>> In the next phase Docker will be evaluated to facilitate cross >>>>>>>>>> platform test execution (Multiple DBs, JDKs, User Stores, OS etc..) >>>>>>>>>> >>>>>>>>>> Please share your ideas for improvement. We are planning to have >>>>>>>>>> an architectural review with DevOps team within next week. >>>>>>>>>> >>>>>>>>>> Attached diagram represents the proposed architecture. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> [1] >>>>>>>>>> https://docs.google.com/a/wso2.com/document/d/1XVEs_5Aq5I7S1IbgFKjvzMX-_xCKOX--Yo6SXgk6JYY/edit >>>>>>>>>> >>>>>>>>>> [2]http://packages.ubuntu.com/trusty/facter >>>>>>>>>> >>>>>>>>>> [3]http://suhan-opensource.blogspot.com/ >>>>>>>>>> >>>>>>>>>> [4] >>>>>>>>>> https://docs.google.com/a/wso2.com/document/d/16kNIQVoWYTa8mBj1bZhh8qqrh_6EuB6D53eykFUPduk/edit >>>>>>>>>> >>>>>>>>>> [5] stackoverflow >>>>>>>>>> >>>>>>>>>> 1. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> http://stackoverflow.com/questions/26754915/novaclient-create-cloud-server-using-boot-error-badrequest-multiple-pos >>>>>>>>>> 2. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> http://stackoverflow.com/questions/27125371/puppet-catalog-run-error-error-400-on-server-not-authorized-to-call-find-on-p >>>>>>>>>> 3. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> http://stackoverflow.com/questions/27183036/puppet-fill-templates-with-ip-addresses-of-newly-spawned-instances >>>>>>>>>> 4. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> http://stackoverflow.com/questions/27222189/puppet-iteration-with-2-dimensional-array-to-fill-template >>>>>>>>>> 5. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> http://stackoverflow.com/questions/27286731/puppet-fill-template-values-using-params-pp-complex-data-structures >>>>>>>>>> 6. >>>>>>>>>> >>>>>>>>>> http://stackoverflow.com/questions/27402037/puppet-site-pp-applying-node-definition-config-for-nodes-with-same-hostname-pref >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> Suhan >>>>>>>>>> -- >>>>>>>>>> Suhan Dharmasuriya >>>>>>>>>> Software Engineer - Test Automation >>>>>>>>>> >>>>>>>>>> *WSO2, Inc. * >>>>>>>>>> >>>>>>>>>> lean . enterprise . middleware >>>>>>>>>> Tel: +94 112 145345 >>>>>>>>>> Mob: +94 779 869138 >>>>>>>>>> Blog: http://suhan-opensource.blogspot.com/ >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Suhan Dharmasuriya >>>>>>>>> Software Engineer - Test Automation >>>>>>>>> >>>>>>>>> *WSO2, Inc. * >>>>>>>>> >>>>>>>>> lean . enterprise . middleware >>>>>>>>> Tel: +94 112 145345 >>>>>>>>> Mob: +94 779 869138 >>>>>>>>> Blog: http://suhan-opensource.blogspot.com/ >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Suhan Dharmasuriya >>>>>>>> Software Engineer - Test Automation >>>>>>>> >>>>>>>> *WSO2, Inc. * >>>>>>>> >>>>>>>> lean . enterprise . middleware >>>>>>>> Tel: +94 112 145345 >>>>>>>> Mob: +94 779 869138 >>>>>>>> Blog: http://suhan-opensource.blogspot.com/ >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Suhan Dharmasuriya >>>>>>> Software Engineer - Test Automation >>>>>>> >>>>>>> *WSO2, Inc. * >>>>>>> >>>>>>> lean . enterprise . middleware >>>>>>> Tel: +94 112 145345 >>>>>>> Mob: +94 779 869138 >>>>>>> Blog: http://suhan-opensource.blogspot.com/ >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Suhan Dharmasuriya >>>>>> Software Engineer - Test Automation >>>>>> >>>>>> *WSO2, Inc. * >>>>>> >>>>>> lean . enterprise . middleware >>>>>> Tel: +94 112 145345 >>>>>> Mob: +94 779 869138 >>>>>> Blog: http://suhan-opensource.blogspot.com/ >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> S.Uthaiyashankar >>>>> VP Engineering >>>>> WSO2 Inc. >>>>> http://wso2.com/ - "lean . enterprise . middleware" >>>>> >>>>> Phone: +94 714897591 >>>>> >>>> >>>> >>>> -- >>>> Krishantha Samaraweera >>>> Senior Technical Lead - Test Automation >>>> Mobile: +94 77 7759918 >>>> WSO2, Inc.; http://wso2.com/ >>>> lean . enterprise . middlewear. >>>> >>> >>> >>> >>> -- >>> Suhan Dharmasuriya >>> Software Engineer - Test Automation >>> >>> *WSO2, Inc. * >>> >>> lean . enterprise . middleware >>> Tel: +94 112 145345 >>> Mob: +94 779 869138 >>> Blog: http://suhan-opensource.blogspot.com/ >>> >> >> >> >> -- >> Suhan Dharmasuriya >> Software Engineer - Test Automation >> >> *WSO2, Inc. * >> >> lean . enterprise . middleware >> Tel: +94 112 145345 >> Mob: +94 779 869138 >> Blog: http://suhan-opensource.blogspot.com/ >> > > > > -- > Suhan Dharmasuriya > Software Engineer - Test Automation > > *WSO2, Inc. * > > lean . enterprise . middleware > Tel: +94 112 145345 > Mob: +94 779 869138 > Blog: http://suhan-opensource.blogspot.com/ > -- Suhan Dharmasuriya Software Engineer - Test Automation *WSO2, Inc. * lean . enterprise . middleware Tel: +94 112 145345 Mob: +94 779 869138 Blog: http://suhan-opensource.blogspot.com/
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
