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

Reply via email to