<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:"Calibri Light \,sans-serif";
        panose-1:0 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;
        mso-fareast-language:EN-ZA;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;
        mso-fareast-language:EN-ZA;}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;
        mso-fareast-language:EN-US;}
span.EmailStyle22
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle23
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1374228004;
        mso-list-template-ids:1406574368;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:"Courier New";
        mso-bidi-font-family:"Times New Roman";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body bgcolor="white" lang="EN-ZA" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:windowtext">Hi<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext">Thank You<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext">This</span><span style="color:windowtext"> works perfectly and fits into our deployment model.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="color:windowtext;mso-fareast-language:EN-ZA">From:</span></b><span lang="EN-US" style="color:windowtext;mso-fareast-language:EN-ZA"> Nicolas Charles <nicolas.charles@normation.com>
<br>
<b>Sent:</b> Thursday, 22 November 2018 10:36 AM<br>
<b>To:</b> Waldo Delport <waldod@pqfgroup.co.za>; rudder-users@lists.rudder-project.org<br>
<b>Subject:</b> Re: [rudder-users] Move Rules/Directives and Techniques between Servers<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p>Hi Waldo,<span style="mso-fareast-language:EN-ZA"><o:p></o:p></span></p>
<p>You have several approaches for synchronizing different Rudder environments. The most commonly used rely on the underlying git which archive all configurations (in /var/rudder/configuration-repository). Options are:<o:p></o:p></p>
<ul type="disc">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
Set all the configurations in the Dev environment only, and force synchronize it to the QA and Prod environments: with this approach, you have 3 Rudder Servers, *in exactly the same version*, and prohibit any changes of configuration in QA & Prod. When you
 are happy with configuration in Dev environment, you manually promote it through git to the QA server, and load the configuration from git (like in
<a href="https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.rudder.io%2Freference%2F5.0%2Fadministration%2Fserver.html%23_importing_configuration&data=02%7C01%7C%7C415f8e5e49e24e85377408d650557d37%7C1a299edd93fc4ba89e575a9a07e1e978%7C0%7C1%7C636784725457099183&sdata=qff9lzoSr1KEk1aWYmRSE%2FFiXsHClc65zB%2BfB4qZLvo%3D&reserved=0">
https://docs.rudder.io/reference/5.0/administration/server.html#_importing_configuration</a>).<o:p></o:p>
<ul type="circle">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1">
The main issue with this approach is that you can't do changes in QA or Prod, and when you want to promote configurations to QA, you need to make sure that nobody are doing any changes on the Dev Rudder<o:p></o:p></li></ul>
</li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
Cherry pick the configuration from Dev to import them in QA. All modifications of Groups, Directives, Rules and Techniques are stored in git, they can be tracked, and you can pick them by importing them in the QA & Prod environment. This is a fine-grained approach.<o:p></o:p>
<ul type="circle">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1">
Here, detecting possible dependencies can be tricky: you'll need to cherry-pick also Directives that are within a Rule for instance. But since it is in a "human-readable" (understand: XML) format, you can use diff, or even better meld to see differences.<o:p></o:p></li></ul>
</li></ul>
<p>You can also use the API (see documentation <a href="https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.rudder.io%2Fapi%2F&data=02%7C01%7C%7C415f8e5e49e24e85377408d650557d37%7C1a299edd93fc4ba89e575a9a07e1e978%7C0%7C1%7C636784725457109191&sdata=wiKPw4AY0SaVXMAJt%2Flp4W9um9oGV%2F9OYIRFrU0%2F2qY%3D&reserved=0">
https://docs.rudder.io/api/</a> ) to synchronize between environments - GET on the DEV, POST on the QA - which is probably the most convenient way to do.<o:p></o:p></p>
<p>Does it help you to see how to do it?<o:p></o:p></p>
<div>
<p class="MsoNormal">Nicolas<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Le 20/11/2018 à 09:35, Waldo Delport a écrit :<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal">Hi<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">We are planning to use Rudder and really like the tool. The problem we are experiencing is with multi-environment.
<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">We want segregated dev, QA and prod environments. With this in mind we cannot have a single server serving all three enviroments, the configuration eends to follow the dev,qa and prod route. Where once tested on QA we can move it to prod.
 How can we do this on Rudder?<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" width="822" style="width:616.4pt;border-collapse:collapse">
<tbody>
<tr>
<td rowspan="5" valign="top" style="border:none;border-right:solid #323E4F 2.25pt;padding:0cm 5.4pt 0cm 5.4pt">
<p class="MsoNormal"><img border="0" width="306" height="121" style="width:3.1875in;height:1.2604in" id="Picture_x0020_25" src="cid:image001.jpg@01D486FD.76BC8060"><o:p></o:p></p>
</td>
<td width="501" colspan="3" style="width:375.65pt;padding:0cm 5.4pt 0cm 5.4pt">
<p class="MsoNormal"><b><span style="font-size:20.0pt;color:#323E4F">Waldo Delport</span></b><o:p></o:p></p>
</td>
</tr>
<tr>
<td width="501" colspan="3" style="width:375.65pt;padding:0cm 5.4pt 0cm 5.4pt">
<p class="MsoNormal"><b><span style="font-size:14.0pt;color:#4E9C73">Group HOD: Development</span></b><o:p></o:p></p>
</td>
</tr>
<tr>
<td width="501" colspan="3" valign="top" style="width:375.65pt;padding:0cm 5.4pt 0cm 5.4pt">
<p class="MsoNormal"><span style="font-family:"Calibri Light ,sans-serif",serif"> </span><o:p></o:p></p>
</td>
</tr>
<tr style="height:19.7pt">
<td valign="top" style="padding:0cm 5.4pt 0cm 5.4pt;height:19.7pt">
<p class="MsoNormal"><img border="0" width="17" height="17" style="width:.177in;height:.177in" id="Picture_x0020_26" src="cid:image002.png@01D486FD.76BC8060" alt="A close up of a logo

Description
                    generated with high confidence"><o:p></o:p></p>
</td>
<td width="164" valign="top" style="width:123.1pt;padding:0cm 5.4pt 0cm 5.4pt;height:19.7pt">
<p class="MsoNormal" style="text-align:justify"><span lang="EN-US" style="color:#323E4F">+27 (0)12 111 7000
</span><o:p></o:p></p>
</td>
<td width="302" style="width:226.5pt;padding:0cm 0cm 0cm 0cm;height:19.7pt">
<p class="MsoNormal"> <o:p></o:p></p>
</td>
</tr>
<tr style="height:18.65pt">
<td valign="top" style="padding:0cm 5.4pt 0cm 5.4pt;height:18.65pt">
<p class="MsoNormal"><img border="0" width="19" height="19" style="width:.1979in;height:.1979in" id="Picture_x0020_27" src="cid:image003.png@01D486FD.76BC8060"><o:p></o:p></p>
</td>
<td width="164" valign="top" style="width:123.1pt;padding:0cm 5.4pt 0cm 5.4pt;height:18.65pt">
<p class="MsoNormal" style="text-align:justify"><span lang="EN-US" style="color:#323E4F">+27 (0)82 567 7220</span><o:p></o:p></p>
</td>
<td width="302" style="width:226.5pt;padding:0cm 0cm 0cm 0cm;height:18.65pt">
<p class="MsoNormal"> <o:p></o:p></p>
</td>
</tr>
<tr style="height:22.45pt">
<td valign="top" style="border:none;border-right:solid #323E4F 2.25pt;padding:0cm 5.4pt 0cm 5.4pt;height:22.45pt">
<p class="MsoNormal"> <o:p></o:p></p>
</td>
<td valign="top" style="padding:0cm 5.4pt 0cm 5.4pt;height:22.45pt">
<p class="MsoNormal"><img border="0" width="17" height="17" style="width:.177in;height:.177in" id="Picture_x0020_20" src="cid:image004.png@01D486FD.76BC8060" alt="A close up of a logo

Description
                    generated with high confidence"><o:p></o:p></p>
</td>
<td width="164" valign="top" style="width:123.1pt;padding:0cm 5.4pt 0cm 5.4pt;height:22.45pt">
<p class="MsoNormal" style="text-align:justify"><span style="color:#323E4F"><a href="mailto:waldod@pqfgroup.co.za">waldod@pqfgroup.co.za</a></span><o:p></o:p></p>
</td>
<td width="302" style="width:226.5pt;padding:0cm 0cm 0cm 0cm;height:22.45pt">
<p class="MsoNormal"> <o:p></o:p></p>
</td>
</tr>
<tr style="height:64.85pt">
<td valign="top" style="border:none;border-right:solid #323E4F 2.25pt;padding:0cm 5.4pt 0cm 5.4pt;height:64.85pt">
<p class="MsoNormal"><img border="0" width="295" height="81" style="width:3.0729in;height:.8437in" id="Picture_x0020_28" src="cid:image005.jpg@01D486FD.76BC8060"><o:p></o:p></p>
</td>
<td width="501" colspan="3" valign="top" style="width:375.65pt;padding:0cm 5.4pt 0cm 5.4pt;height:64.85pt">
<p class="MsoNormal" style="text-align:justify"><span lang="EN-US" style="font-size:8.0pt;color:#323E4F">This message and any attachments and or links are confidential and intended solely for the addressee. If you have received this message in error, please
 notify PQF Group Services (Pty) Ltd immediately, e-mail </span><a href="mailto:info@pqfgroup.co.za"><span lang="EN-US" style="font-size:8.0pt;color:#323E4F;mso-fareast-language:EN-ZA">info@pqfgroup.co.za</span></a><span lang="EN-US" style="font-size:8.0pt;color:#323E4F">
 . Any unauthorized use; alteration or dissemination of the contents of this email is strictly prohibited. In no event will PQF Group Services (Pty) Ltd or the sender be liable in any manner whatsoever to any person for any loss or any direct, indirect, special
 or consequential damages arising from use of this email or any linked website, including, without limitation, from any lost profits, business interruption, loss of programs or other data that may be stored on any information handling system or otherwise from
 any assurance that this email is virus free even if PQF Group Services (Pty) Ltd is expressly advised of the possibility of such damages.</span><o:p></o:p></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span style="mso-fareast-language:EN-ZA"> </span><o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-ZA"><br>
<br>
<o:p></o:p></span></p>
<pre><o:p> </o:p></pre>
<pre>_______________________________________________<o:p></o:p></pre>
<pre>rudder-users mailing list<o:p></o:p></pre>
<pre>FAQ: <a href="https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Ffaq.rudder.io%2F&data=02%7C01%7C%7C415f8e5e49e24e85377408d650557d37%7C1a299edd93fc4ba89e575a9a07e1e978%7C0%7C1%7C636784725457119199&sdata=WF%2F64KOfPQrQuNDnxhTc2DwXSOQ0ZnmDOC%2BGIUnB9OI%3D&reserved=0">https://faq.rudder.io/</a><o:p></o:p></pre>
<pre>Bug Tracker: <a href="https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fissues.rudder.io%2F&data=02%7C01%7C%7C415f8e5e49e24e85377408d650557d37%7C1a299edd93fc4ba89e575a9a07e1e978%7C0%7C1%7C636784725457119199&sdata=AuJtSLXX39tnCyhlXZa%2BRiBS%2Blje3csqwedOeKipt0Q%3D&reserved=0">https://issues.rudder.io/</a><o:p></o:p></pre>
<pre><a href="mailto:rudder-users@lists.rudder-project.org">rudder-users@lists.rudder-project.org</a><o:p></o:p></pre>
<pre><a href="https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.rudder-project.org%2Fmailman%2Flistinfo%2Frudder-users&data=02%7C01%7C%7C415f8e5e49e24e85377408d650557d37%7C1a299edd93fc4ba89e575a9a07e1e978%7C0%7C1%7C636784725457129207&sdata=xddvYhgeDv0jSWn%2FrLc5FKV%2BjswWWI5ZiyP0%2FJMz0js%3D&reserved=0">https://www.rudder-project.org/mailman/listinfo/rudder-users</a><o:p></o:p></pre>
</blockquote>
</div>
</body>
</html>