218 lines
6.6 KiB
XML
218 lines
6.6 KiB
XML
<workflow>
|
|
<rule match="$.services.activeDirectories[?(@.domain)].units[?(not @.isMaster)]">
|
|
<set path="domain">
|
|
<select path="::domain"/>
|
|
</set>
|
|
</rule>
|
|
|
|
<rule match="$.services.activeDirectories[*].units[?(@.state.hostname and not @.state.instanceName)]">
|
|
<report entity="unit">
|
|
<parameter name="id"><select path="id"/></parameter>
|
|
<parameter name="text">Creating instance <select path="name"/></parameter>
|
|
</report>
|
|
<update-cf-stack template="Windows">
|
|
<parameter name="mappings">
|
|
<map>
|
|
<mapping name="instanceName"><select path="::name"/>-<select path="name"/></mapping>
|
|
<mapping name="userData">
|
|
<prepare-user-data>
|
|
<parameter name="hostname"><select path="state.hostname"/></parameter>
|
|
<parameter name="unit"><select path="name"/></parameter>
|
|
<parameter name="service"><select path="::id"/></parameter>
|
|
</prepare-user-data>
|
|
</mapping>
|
|
</map>
|
|
</parameter>
|
|
<parameter name="arguments">
|
|
<map>
|
|
<argument name="KeyName">murano-keys</argument>
|
|
<argument name="InstanceType">m1.medium</argument>
|
|
<argument name="ImageName">ws-2012-full</argument>
|
|
</map>
|
|
</parameter>
|
|
|
|
<success>
|
|
<set path="state.instanceName"><select path="name"/></set>
|
|
<report entity="unit">
|
|
<parameter name="id"><select path="id"/></parameter>
|
|
<parameter name="text">Instance <select path="name"/> created</parameter>
|
|
</report>
|
|
</success>
|
|
</update-cf-stack>
|
|
</rule>
|
|
|
|
<rule match="$.services.activeDirectories[*].units[?(@.state.instanceName and @.adminPassword and @.adminPassword != @.state.adminPassword)]">
|
|
<send-command template="SetPassword">
|
|
<parameter name="host">
|
|
<select path="name"/>
|
|
</parameter>
|
|
<parameter name="service">
|
|
<select path="::id"/>
|
|
</parameter>
|
|
<parameter name="mappings">
|
|
<map>
|
|
<mapping name="adminPassword">
|
|
<select path="adminPassword"/>
|
|
</mapping>
|
|
</map>
|
|
</parameter>
|
|
<success>
|
|
<set path="state.adminPassword">
|
|
<select path="adminPassword"/>
|
|
</set>
|
|
</success>
|
|
</send-command>
|
|
</rule>
|
|
|
|
<rule match="$.services.activeDirectories[?(@.adminPassword and @.adminPassword != @.state.domainAdminPassword)].units[?(@.state.instanceName and @.isMaster)]">
|
|
<send-command template="SetPassword">
|
|
<parameter name="host">
|
|
<select path="name"/>
|
|
</parameter>
|
|
<parameter name="service">
|
|
<select path="::id"/>
|
|
</parameter>
|
|
<parameter name="mappings">
|
|
<map>
|
|
<mapping name="adminPassword">
|
|
<select path="::adminPassword"/>
|
|
</mapping>
|
|
</map>
|
|
</parameter>
|
|
<success>
|
|
<set path="::state.domainAdminPassword">
|
|
<select path="::adminPassword"/>
|
|
</set>
|
|
</success>
|
|
</send-command>
|
|
</rule>
|
|
|
|
<rule match="$.services.activeDirectories[?(@.state.primaryDc is None)].units[?(@.state.instanceName and @.isMaster)]">
|
|
<report entity="unit">
|
|
<parameter name="id"><select path="id"/></parameter>
|
|
<parameter name="text">Creating Primary Domain Controller on unit <select path="name"/></parameter>
|
|
</report>
|
|
<send-command template="CreatePrimaryDC">
|
|
<parameter name="host">
|
|
<select path="name"/>
|
|
</parameter>
|
|
<parameter name="service">
|
|
<select path="::id"/>
|
|
</parameter>
|
|
<parameter name="mappings">
|
|
<map>
|
|
<mapping name="domain">
|
|
<select path="::domain"/>
|
|
</mapping>
|
|
<mapping name="recoveryPassword">
|
|
<select path="recoveryPassword"/>
|
|
</mapping>
|
|
</map>
|
|
</parameter>
|
|
<success>
|
|
<set path="::state.primaryDc"><select path="name"/></set>
|
|
<report entity="unit">
|
|
<parameter name="id"><select path="id"/></parameter>
|
|
<parameter name="text">Primary Domain Controller created</parameter>
|
|
</report>
|
|
</success>
|
|
</send-command>
|
|
</rule>
|
|
|
|
<rule match="$.services.activeDirectories[?(@.state.primaryDc and not @.state.primaryDcIp)].units[?(@.state.instanceName and @.isMaster)]">
|
|
<send-command template="AskDnsIp" result="ip">
|
|
<parameter name="host">
|
|
<select path="name"/>
|
|
</parameter>
|
|
<parameter name="service">
|
|
<select path="::id"/>
|
|
</parameter>
|
|
<success>
|
|
<set path="::state.primaryDcIp">
|
|
<select source="ip" path="0.Result.0"/>
|
|
</set>
|
|
</success>
|
|
</send-command>
|
|
</rule>
|
|
|
|
<rule match="$..units[?(@.state.instanceName and @.domain and @.domain != @.state.domain)]">
|
|
<set path="#unit">
|
|
<select/>
|
|
</set>
|
|
<set path="#service">
|
|
<select path="::"/>
|
|
</set>
|
|
<rule>
|
|
<parameter name="match">/$.services.activeDirectories[?(@.domain == '<select path="domain"/>' and @.state.primaryDcIp)]</parameter>
|
|
|
|
<send-command template="JoinDomain">
|
|
<parameter name="host">
|
|
<select path="name" source="unit"/>
|
|
</parameter>
|
|
<parameter name="service">
|
|
<select path="id" source="service"/>
|
|
</parameter>
|
|
<parameter name="mappings">
|
|
<map>
|
|
<mapping name="domain">
|
|
<select path="domain"/>
|
|
</mapping>
|
|
<mapping name="domainPassword">
|
|
<select path="adminPassword"/>
|
|
</mapping>
|
|
<mapping name="dnsIp">
|
|
<select path="state.primaryDcIp"/>
|
|
</mapping>
|
|
</map>
|
|
</parameter>
|
|
|
|
<success>
|
|
<set path="state.domain" target="unit">
|
|
<select path="domain"/>
|
|
</set>
|
|
<report entity="unit">
|
|
<parameter name="id"><select path="id" source="unit"/></parameter>
|
|
<parameter name="text">Unit <select path="name" source="unit"/> has joined domain <select path="domain"/></parameter>
|
|
</report>
|
|
</success>
|
|
</send-command>
|
|
</rule>
|
|
</rule>
|
|
|
|
|
|
<rule match="$.services.activeDirectories[*].units[?(@.state.domain and not @.isMaster and not @.state.installed)]">
|
|
<report entity="unit">
|
|
<parameter name="id"><select path="id"/></parameter>
|
|
<parameter name="text">Creating Secondary Domain Controller on unit <select path="name"/></parameter>
|
|
</report>
|
|
<send-command template="CreateSecondaryDC">
|
|
<parameter name="host">
|
|
<select path="name"/>
|
|
</parameter>
|
|
<parameter name="service">
|
|
<select path="::id"/>
|
|
</parameter>
|
|
<parameter name="mappings">
|
|
<map>
|
|
<mapping name="recoveryPassword">
|
|
<select path="recoveryPassword"/>
|
|
</mapping>
|
|
<mapping name="domainPassword">
|
|
<select path="::adminPassword"/>
|
|
</mapping>
|
|
</map>
|
|
</parameter>
|
|
<success>
|
|
<set path="state.installed"><true/></set>
|
|
<report entity="unit">
|
|
<parameter name="id"><select path="id"/></parameter>
|
|
<parameter name="text">Secondary Domain Controller created</parameter>
|
|
</report>
|
|
<report entity="service">
|
|
<parameter name="id"><select path="::id"/></parameter>
|
|
<parameter name="text">Domain <select path="::domain"/> created</parameter>
|
|
</report>
|
|
</success>
|
|
</send-command>
|
|
</rule>
|
|
</workflow> |