What is the best approach to spawn a fresh new Sitecore 8x instance automatically?












3















We are currently developing a Sitecore package and we have a few automated functional/integration tests as part of this project.



Ideally, every time a developer pushes its code to the trunk our CI/CD pipeline (Jenkins in our case) would identify this event and spawn a new machine to run the automated tests.



The script running on Jenkins is currently able to install a new Sitecore 9.x using SIF, which is awesome. After that, all it has to do is install our package via command-line and then run the automated tests.



Since we can have as many tests running in parallel as our team want (or as many as our team can merge its stuff) these Sitecore instances must be created on demand, that's the reason we are spawning a new machine for every scenario.



I was wondering what would be the best approach when it comes to Sitecore 8x since we can't use SIF.



Did someone else face a similar situation in the past and/or have an idea?



Any help is appreciated.



Thanks in advance.










share|improve this question



























    3















    We are currently developing a Sitecore package and we have a few automated functional/integration tests as part of this project.



    Ideally, every time a developer pushes its code to the trunk our CI/CD pipeline (Jenkins in our case) would identify this event and spawn a new machine to run the automated tests.



    The script running on Jenkins is currently able to install a new Sitecore 9.x using SIF, which is awesome. After that, all it has to do is install our package via command-line and then run the automated tests.



    Since we can have as many tests running in parallel as our team want (or as many as our team can merge its stuff) these Sitecore instances must be created on demand, that's the reason we are spawning a new machine for every scenario.



    I was wondering what would be the best approach when it comes to Sitecore 8x since we can't use SIF.



    Did someone else face a similar situation in the past and/or have an idea?



    Any help is appreciated.



    Thanks in advance.










    share|improve this question

























      3












      3








      3








      We are currently developing a Sitecore package and we have a few automated functional/integration tests as part of this project.



      Ideally, every time a developer pushes its code to the trunk our CI/CD pipeline (Jenkins in our case) would identify this event and spawn a new machine to run the automated tests.



      The script running on Jenkins is currently able to install a new Sitecore 9.x using SIF, which is awesome. After that, all it has to do is install our package via command-line and then run the automated tests.



      Since we can have as many tests running in parallel as our team want (or as many as our team can merge its stuff) these Sitecore instances must be created on demand, that's the reason we are spawning a new machine for every scenario.



      I was wondering what would be the best approach when it comes to Sitecore 8x since we can't use SIF.



      Did someone else face a similar situation in the past and/or have an idea?



      Any help is appreciated.



      Thanks in advance.










      share|improve this question














      We are currently developing a Sitecore package and we have a few automated functional/integration tests as part of this project.



      Ideally, every time a developer pushes its code to the trunk our CI/CD pipeline (Jenkins in our case) would identify this event and spawn a new machine to run the automated tests.



      The script running on Jenkins is currently able to install a new Sitecore 9.x using SIF, which is awesome. After that, all it has to do is install our package via command-line and then run the automated tests.



      Since we can have as many tests running in parallel as our team want (or as many as our team can merge its stuff) these Sitecore instances must be created on demand, that's the reason we are spawning a new machine for every scenario.



      I was wondering what would be the best approach when it comes to Sitecore 8x since we can't use SIF.



      Did someone else face a similar situation in the past and/or have an idea?



      Any help is appreciated.



      Thanks in advance.







      sitecore-install-framework automation






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 8 hours ago









      Hugo SantosHugo Santos

      15413




      15413






















          3 Answers
          3






          active

          oldest

          votes


















          3














          The way I manage to solve a very similar problem in the past with Sitecore 8.x was to have "seed" installations of Sitecore (8.0, 8.1, 8.2, etc.). Each installation would contain:




          • Sitecore Base installation

          • Any modules required installed

          • External dependencies

          • Everything vanilla configuration


          Option 1: The seed can be a collection of Zip files with databases and website folder, that you just copy and unzip to the right folder. After that you run some PowerShell scripts to fix folder permissions and restore databases. I'm assuming here a pool of shared resources (MongoDB, SQL Server, etc.) available to all instance, with each one of them pointing to specific collections on MongoDB, Databases on SQL Server, etc.



          Option 2: If you want to go one step further, you can have VMs with Snapshot points where you can always restore to the "seed" state, and deploy again. On this case, you just need to make sure all of your VMs are synced, if you have more than one on your test environment. That's the choice that I went once I had proved the approach above mentioned with Zip files. Just be careful if you want to spin up new VMs based on the seed, you may want to check WinPE to create a seed of the VMs that you can replicate as much as you want.






          share|improve this answer








          New contributor




          Caio Ferraz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.




























            1














            For the records, that's the way we are dealing with this challenge currently.



            We took the easiest approach possible even if it is not the most elegant.



            We just created this Windows Machine image which contains a bunch of Sitecore instances already installed, one for each Sitecore version we want to run our automated tests (7.2 until 9.1). The instance names are following an internal convention by the way.



            Then, all Jenkins has to do is spawn a new machine using this image.



            On that way, the automation script can blindly access the wanted Sitecore version (since it can predict its name) and do whatever it wants with it.






            share|improve this answer































              0














              We've used our own PowerShell scripts to do what you're describing. In the Sitecore 8 space -- before SIF -- many organizations built their own automated way of provisioning Sitecore installations. In fact, I think the origins of SIF come from Sitecore's own QA teams provisioning environments on-demand to evaluate features.



              You can go through the Sitecore installation document and procedurally complete every step in PowerShell, adding variables where it makes sense (site name, version, etc).






              share|improve this answer























                Your Answer








                StackExchange.ready(function() {
                var channelOptions = {
                tags: "".split(" "),
                id: "664"
                };
                initTagRenderer("".split(" "), "".split(" "), channelOptions);

                StackExchange.using("externalEditor", function() {
                // Have to fire editor after snippets, if snippets enabled
                if (StackExchange.settings.snippets.snippetsEnabled) {
                StackExchange.using("snippets", function() {
                createEditor();
                });
                }
                else {
                createEditor();
                }
                });

                function createEditor() {
                StackExchange.prepareEditor({
                heartbeatType: 'answer',
                autoActivateHeartbeat: false,
                convertImagesToLinks: false,
                noModals: true,
                showLowRepImageUploadWarning: true,
                reputationToPostImages: null,
                bindNavPrevention: true,
                postfix: "",
                imageUploader: {
                brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
                contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
                allowUrls: true
                },
                onDemand: true,
                discardSelector: ".discard-answer"
                ,immediatelyShowMarkdownHelp:true
                });


                }
                });














                draft saved

                draft discarded


















                StackExchange.ready(
                function () {
                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsitecore.stackexchange.com%2fquestions%2f16537%2fwhat-is-the-best-approach-to-spawn-a-fresh-new-sitecore-8x-instance-automaticall%23new-answer', 'question_page');
                }
                );

                Post as a guest















                Required, but never shown

























                3 Answers
                3






                active

                oldest

                votes








                3 Answers
                3






                active

                oldest

                votes









                active

                oldest

                votes






                active

                oldest

                votes









                3














                The way I manage to solve a very similar problem in the past with Sitecore 8.x was to have "seed" installations of Sitecore (8.0, 8.1, 8.2, etc.). Each installation would contain:




                • Sitecore Base installation

                • Any modules required installed

                • External dependencies

                • Everything vanilla configuration


                Option 1: The seed can be a collection of Zip files with databases and website folder, that you just copy and unzip to the right folder. After that you run some PowerShell scripts to fix folder permissions and restore databases. I'm assuming here a pool of shared resources (MongoDB, SQL Server, etc.) available to all instance, with each one of them pointing to specific collections on MongoDB, Databases on SQL Server, etc.



                Option 2: If you want to go one step further, you can have VMs with Snapshot points where you can always restore to the "seed" state, and deploy again. On this case, you just need to make sure all of your VMs are synced, if you have more than one on your test environment. That's the choice that I went once I had proved the approach above mentioned with Zip files. Just be careful if you want to spin up new VMs based on the seed, you may want to check WinPE to create a seed of the VMs that you can replicate as much as you want.






                share|improve this answer








                New contributor




                Caio Ferraz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.

























                  3














                  The way I manage to solve a very similar problem in the past with Sitecore 8.x was to have "seed" installations of Sitecore (8.0, 8.1, 8.2, etc.). Each installation would contain:




                  • Sitecore Base installation

                  • Any modules required installed

                  • External dependencies

                  • Everything vanilla configuration


                  Option 1: The seed can be a collection of Zip files with databases and website folder, that you just copy and unzip to the right folder. After that you run some PowerShell scripts to fix folder permissions and restore databases. I'm assuming here a pool of shared resources (MongoDB, SQL Server, etc.) available to all instance, with each one of them pointing to specific collections on MongoDB, Databases on SQL Server, etc.



                  Option 2: If you want to go one step further, you can have VMs with Snapshot points where you can always restore to the "seed" state, and deploy again. On this case, you just need to make sure all of your VMs are synced, if you have more than one on your test environment. That's the choice that I went once I had proved the approach above mentioned with Zip files. Just be careful if you want to spin up new VMs based on the seed, you may want to check WinPE to create a seed of the VMs that you can replicate as much as you want.






                  share|improve this answer








                  New contributor




                  Caio Ferraz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                  Check out our Code of Conduct.























                    3












                    3








                    3







                    The way I manage to solve a very similar problem in the past with Sitecore 8.x was to have "seed" installations of Sitecore (8.0, 8.1, 8.2, etc.). Each installation would contain:




                    • Sitecore Base installation

                    • Any modules required installed

                    • External dependencies

                    • Everything vanilla configuration


                    Option 1: The seed can be a collection of Zip files with databases and website folder, that you just copy and unzip to the right folder. After that you run some PowerShell scripts to fix folder permissions and restore databases. I'm assuming here a pool of shared resources (MongoDB, SQL Server, etc.) available to all instance, with each one of them pointing to specific collections on MongoDB, Databases on SQL Server, etc.



                    Option 2: If you want to go one step further, you can have VMs with Snapshot points where you can always restore to the "seed" state, and deploy again. On this case, you just need to make sure all of your VMs are synced, if you have more than one on your test environment. That's the choice that I went once I had proved the approach above mentioned with Zip files. Just be careful if you want to spin up new VMs based on the seed, you may want to check WinPE to create a seed of the VMs that you can replicate as much as you want.






                    share|improve this answer








                    New contributor




                    Caio Ferraz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                    Check out our Code of Conduct.










                    The way I manage to solve a very similar problem in the past with Sitecore 8.x was to have "seed" installations of Sitecore (8.0, 8.1, 8.2, etc.). Each installation would contain:




                    • Sitecore Base installation

                    • Any modules required installed

                    • External dependencies

                    • Everything vanilla configuration


                    Option 1: The seed can be a collection of Zip files with databases and website folder, that you just copy and unzip to the right folder. After that you run some PowerShell scripts to fix folder permissions and restore databases. I'm assuming here a pool of shared resources (MongoDB, SQL Server, etc.) available to all instance, with each one of them pointing to specific collections on MongoDB, Databases on SQL Server, etc.



                    Option 2: If you want to go one step further, you can have VMs with Snapshot points where you can always restore to the "seed" state, and deploy again. On this case, you just need to make sure all of your VMs are synced, if you have more than one on your test environment. That's the choice that I went once I had proved the approach above mentioned with Zip files. Just be careful if you want to spin up new VMs based on the seed, you may want to check WinPE to create a seed of the VMs that you can replicate as much as you want.







                    share|improve this answer








                    New contributor




                    Caio Ferraz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                    Check out our Code of Conduct.









                    share|improve this answer



                    share|improve this answer






                    New contributor




                    Caio Ferraz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                    Check out our Code of Conduct.









                    answered 8 hours ago









                    Caio FerrazCaio Ferraz

                    462




                    462




                    New contributor




                    Caio Ferraz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                    Check out our Code of Conduct.





                    New contributor





                    Caio Ferraz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                    Check out our Code of Conduct.






                    Caio Ferraz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                    Check out our Code of Conduct.























                        1














                        For the records, that's the way we are dealing with this challenge currently.



                        We took the easiest approach possible even if it is not the most elegant.



                        We just created this Windows Machine image which contains a bunch of Sitecore instances already installed, one for each Sitecore version we want to run our automated tests (7.2 until 9.1). The instance names are following an internal convention by the way.



                        Then, all Jenkins has to do is spawn a new machine using this image.



                        On that way, the automation script can blindly access the wanted Sitecore version (since it can predict its name) and do whatever it wants with it.






                        share|improve this answer




























                          1














                          For the records, that's the way we are dealing with this challenge currently.



                          We took the easiest approach possible even if it is not the most elegant.



                          We just created this Windows Machine image which contains a bunch of Sitecore instances already installed, one for each Sitecore version we want to run our automated tests (7.2 until 9.1). The instance names are following an internal convention by the way.



                          Then, all Jenkins has to do is spawn a new machine using this image.



                          On that way, the automation script can blindly access the wanted Sitecore version (since it can predict its name) and do whatever it wants with it.






                          share|improve this answer


























                            1












                            1








                            1







                            For the records, that's the way we are dealing with this challenge currently.



                            We took the easiest approach possible even if it is not the most elegant.



                            We just created this Windows Machine image which contains a bunch of Sitecore instances already installed, one for each Sitecore version we want to run our automated tests (7.2 until 9.1). The instance names are following an internal convention by the way.



                            Then, all Jenkins has to do is spawn a new machine using this image.



                            On that way, the automation script can blindly access the wanted Sitecore version (since it can predict its name) and do whatever it wants with it.






                            share|improve this answer













                            For the records, that's the way we are dealing with this challenge currently.



                            We took the easiest approach possible even if it is not the most elegant.



                            We just created this Windows Machine image which contains a bunch of Sitecore instances already installed, one for each Sitecore version we want to run our automated tests (7.2 until 9.1). The instance names are following an internal convention by the way.



                            Then, all Jenkins has to do is spawn a new machine using this image.



                            On that way, the automation script can blindly access the wanted Sitecore version (since it can predict its name) and do whatever it wants with it.







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered 7 hours ago









                            Hugo SantosHugo Santos

                            15413




                            15413























                                0














                                We've used our own PowerShell scripts to do what you're describing. In the Sitecore 8 space -- before SIF -- many organizations built their own automated way of provisioning Sitecore installations. In fact, I think the origins of SIF come from Sitecore's own QA teams provisioning environments on-demand to evaluate features.



                                You can go through the Sitecore installation document and procedurally complete every step in PowerShell, adding variables where it makes sense (site name, version, etc).






                                share|improve this answer




























                                  0














                                  We've used our own PowerShell scripts to do what you're describing. In the Sitecore 8 space -- before SIF -- many organizations built their own automated way of provisioning Sitecore installations. In fact, I think the origins of SIF come from Sitecore's own QA teams provisioning environments on-demand to evaluate features.



                                  You can go through the Sitecore installation document and procedurally complete every step in PowerShell, adding variables where it makes sense (site name, version, etc).






                                  share|improve this answer


























                                    0












                                    0








                                    0







                                    We've used our own PowerShell scripts to do what you're describing. In the Sitecore 8 space -- before SIF -- many organizations built their own automated way of provisioning Sitecore installations. In fact, I think the origins of SIF come from Sitecore's own QA teams provisioning environments on-demand to evaluate features.



                                    You can go through the Sitecore installation document and procedurally complete every step in PowerShell, adding variables where it makes sense (site name, version, etc).






                                    share|improve this answer













                                    We've used our own PowerShell scripts to do what you're describing. In the Sitecore 8 space -- before SIF -- many organizations built their own automated way of provisioning Sitecore installations. In fact, I think the origins of SIF come from Sitecore's own QA teams provisioning environments on-demand to evaluate features.



                                    You can go through the Sitecore installation document and procedurally complete every step in PowerShell, adding variables where it makes sense (site name, version, etc).







                                    share|improve this answer












                                    share|improve this answer



                                    share|improve this answer










                                    answered 8 hours ago









                                    G KillianG Killian

                                    894513




                                    894513






























                                        draft saved

                                        draft discarded




















































                                        Thanks for contributing an answer to Sitecore Stack Exchange!


                                        • Please be sure to answer the question. Provide details and share your research!

                                        But avoid



                                        • Asking for help, clarification, or responding to other answers.

                                        • Making statements based on opinion; back them up with references or personal experience.


                                        To learn more, see our tips on writing great answers.




                                        draft saved


                                        draft discarded














                                        StackExchange.ready(
                                        function () {
                                        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsitecore.stackexchange.com%2fquestions%2f16537%2fwhat-is-the-best-approach-to-spawn-a-fresh-new-sitecore-8x-instance-automaticall%23new-answer', 'question_page');
                                        }
                                        );

                                        Post as a guest















                                        Required, but never shown





















































                                        Required, but never shown














                                        Required, but never shown












                                        Required, but never shown







                                        Required, but never shown

































                                        Required, but never shown














                                        Required, but never shown












                                        Required, but never shown







                                        Required, but never shown







                                        Popular posts from this blog

                                        Polycentropodidae

                                        Magento 2 Error message: Invalid state change requested

                                        Paulmy