on-http-y1
Version:
OnRack Http Server
235 lines (211 loc) • 7.24 kB
text/xml
<profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns">
<partitioning config:type="list">
<drive>
<device><%=installDisk%></device>
<use>all</use>
</drive>
</partitioning>
<general>
<mode>
<!-- automation setting -->
<confirm config:type="boolean">false</confirm>
</mode>
</general>
<!-- users settings -->
<users config:type="list">
<user>
<encrypted config:type="boolean">true</encrypted>
<fullname>root</fullname>
<gid>0</gid>
<uid>0</uid>
<user_password><%=rootEncryptedPassword%></user_password>
<username>root</username>
</user>
<% if( typeof users !== 'undefined' ) { %>
<% users.forEach(function(user) { %>
<user>
<encrypted config:type="boolean">true</encrypted>
<fullname><%=user.name%></fullname>
<% if( undefined !== user.uid ) { %>
<uid><%=user.uid%></uid>
<% } %>
<user_password><%=user.encryptedPassword%></user_password>
<username><%=user.name%></username>
</user>
<% }) %>
<% } %>
</users>
<networking>
<keep_install_network config:type="boolean">true</keep_install_network>
<dns>
<dhcp_hostname config:type="boolean">true</dhcp_hostname>
<dhcp_resolv config:type="boolean">true</dhcp_resolv>
<% if( typeof domain !== 'undefined') { %>
<domain><%=domain%></domain>
<% } %>
<% if( typeof hostname !== 'undefined') { %>
<hostname><%=hostname%></hostname>
<% } %>
<write_hostname config:type="boolean">true</write_hostname>
<% if( typeof dnsServers !== 'undefined' ) { %>
<nameservers config:type="list">
<% dnsServers.forEach(function(dns) { %>
<nameserver><%=dns%></nameserver>
<% }) %>
</nameservers>
<% } %>
</dns>
<interfaces config:type="list">
<% ipv6 = 0 %>
<% if( typeof networkDevices !== 'undefined') { %>
<% networkDevices.forEach(function(n) { %>
<% if( undefined != n.ipv4 ) { %>
<% if( undefined != n.ipv4.vlanIds ) { %>
<% n.ipv4.vlanIds.forEach(function(vid) { %>
<interface>
<startmode>auto</startmode>
<device><%=n.device%>.<%=vid%></device>
<ipaddr><%=n.ipv4.ipAddr%></ipaddr>
<netmask><%=n.ipv4.netmask%></netmask>
<gateway><%=n.ipv4.gateway%></gateway>
<vlan>yes</vlan>
</interface>
<% }); %>
<% } else { %>
<interface>
<startmode>auto</startmode>
<device><%=n.device%></device>
<ipaddr><%=n.ipv4.ipAddr%></ipaddr>
<netmask><%=n.ipv4.netmask%></netmask>
<gateway><%=n.ipv4.gateway%></gateway>
</interface>
<% } %>
<% } %>
<% if( undefined != n.ipv6 ) { %>
<% if( undefined != n.ipv6.vlanIds ) { %>
<% n.ipv6.vlanIds.forEach(function(vid) { %>
<interface>
<startmode>auto</startmode>
<device><%=n.device%>.<%=vid%></device>
<ipaddr><%=n.ipv6.ipAddr%></ipaddr>
<netmask><%=n.ipv6.netmask%></netmask>
<gateway><%=n.ipv6.gateway%></gateway>
<vlan>yes</vlan>
</interface>
<% ipv6 = 1 %>
<% }); %>
<% } else { %>
<interface>
<startmode>auto</startmode>
<device><%=n.device%></device>
<ipaddr><%=n.ipv6.ipAddr%></ipaddr>
<netmask><%=n.ipv6.netmask%></netmask>
<gateway><%=n.ipv6.gateway%></gateway>
</interface>
<% ipv6 = 1 %>
<% } %>
<% } %>
<% }); %>
<% } %>
</interfaces>
<!-- enable or disable ipv6 -->
<% if( ipv6 ) { %>
<ipv6 config:type="boolean">true</ipv6>
<% } %>
</networking>
<software>
<packages config:type="list">
<package>openssh</package>
<% if( typeof kvm !== 'undefined' && kvm ) { %>
<% if (version === "11") { %>
<package>kvm</package>
<% } else { %>
<package>qemu-kvm</package>
<% } %>
<package>virt-manager</package>
<package>libvirt</package>
<package>libvirt-python</package>
<package>bridge-utils</package>
<% } %>
</packages>
</software>
<services-manager>
<default_target>multi-user</default_target>
<services>
<enable config:type="list">
<service>sshd</service>
</enable>
</services>
</services-manager>
<scripts>
<pre-scripts config:type="list">
<script>
<interpreter>shell</interpreter>
<source> <![CDATA[
#!/bin/sh
<% if( typeof progressMilestones !== 'undefined' && progressMilestones.preConfigUri ) { %>
curl -X POST -H 'Content-Type:application/json' "http://<%=server%>:<%=port%><%-progressMilestones.preConfigUri%>" || true
<% } %>
]]>
</source>
</script>
</pre-scripts>
<postpartitioning-scripts config:type="list">
<script>
<interpreter>shell</interpreter>
<source> <![CDATA[
#!/bin/sh
<% if( typeof progressMilestones !== 'undefined' && progressMilestones.postPartitioningUri ) { %>
curl -X POST -H 'Content-Type:application/json' "http://<%=server%>:<%=port%><%-progressMilestones.postPartitioningUri%>" || true
<% } %>
]]>
</source>
</script>
</postpartitioning-scripts>
<chroot-scripts config:type="list">
<script>
<chrooted config:type="boolean">true</chrooted>
<interpreter>shell</interpreter>
<!-- scripts for workflow completion -->
<source> <![CDATA[
#!/bin/sh
<% if( typeof progressMilestones !== 'undefined' && progressMilestones.chrootUri ) { %>
curl -X POST -H 'Content-Type:application/json' "http://<%=server%>:<%=port%><%-progressMilestones.chrootUri%>" || true
<% } %>
curl -X POST -H 'Content-Type:application/json' http://<%=server%>:<%=port%>/api/current/notification?nodeId=<%=nodeId%>
]]>
</source>
</script>
</chroot-scripts>
<post-scripts config:type="list">
<script>
<interpreter>shell</interpreter>
<chrooted config:type="boolean">true</chrooted>
<source> <![CDATA[
#!/bin/sh
# Make .ssh directory for root and users
# Set root ssh key
<% if (typeof rootSshKey !== 'undefined') { %>
mkdir /root/.ssh
echo <%=rootSshKey%> > /root/.ssh/authorized_keys
chown -R root:root /root/.ssh
<% } %>
# Set users ssh key
<% if (typeof users !== 'undefined') { %>
<% users.forEach(function(user) { %>
<% if (typeof user.sshKey !== 'undefined') { %>
mkdir /home/<%=user.name%>/.ssh
echo <%=user.sshKey%> > /home/<%=user.name%>/.ssh/authorized_keys
chown -R <%=user.name%>:users /home/<%=user.name%>/.ssh
<% } %>
<% }) %>
<% } %>
curl -X POST -H 'Content-Type:application/json' http://<%=server%>:<%=port%>/api/current/notification?nodeId=<%=nodeId%>
]]>
</source>
</script>
</post-scripts>
</scripts>
</profile>