chef/cookbooks/provisioner/templates/default/autoyast-upgrade.xml.erb
<?xml version="1.0"?>
<!DOCTYPE profile>
<profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns">
<deploy_image>
<image_installation config:type="boolean">false</image_installation>
</deploy_image>
<general>
<ask-list config:type="list"/>
<mode>
<confirm config:type="boolean">false</confirm>
<final_halt config:type="boolean">false</final_halt>
<final_reboot config:type="boolean">false</final_reboot>
<halt config:type="boolean">false</halt>
<second_stage config:type="boolean">true</second_stage>
</mode>
<mouse>
<id>none</id>
</mouse>
<proposals config:type="list"/>
<signature-handling>
<accept_file_without_checksum config:type="boolean">true</accept_file_without_checksum>
<accept_non_trusted_gpg_key config:type="boolean">true</accept_non_trusted_gpg_key>
<accept_unknown_gpg_key config:type="boolean">true</accept_unknown_gpg_key>
<accept_unsigned_file config:type="boolean">true</accept_unsigned_file>
<accept_verification_failed config:type="boolean">true</accept_verification_failed>
<import_gpg_key config:type="boolean">true</import_gpg_key>
</signature-handling>
<storage/>
</general>
<add-on>
<add_on_products config:type="list">
<% @repos.keys.sort.each do |name| %>
<listentry>
<name><%= name %></name>
<product><%= name %></product>
<product_dir>/</product_dir>
<media_url><%= @repos[name][:url] %></media_url>
<!-- See bnc#787157 for discussion on ask_on_error -->
<ask_on_error config:type="boolean"><%= @repos[name][:ask_on_error] || 'false' %></ask_on_error>
</listentry>
<% end %>
</add_on_products>
</add-on>
<services-manager>
<services>
<enable config:type="list">
<service>sshd</service>
</enable>
</services>
</services-manager>
<scripts>
<chroot-scripts config:type="list">
<script>
<chrooted config:type="boolean">true</chrooted>
<debug config:type="boolean">true</debug>
<filename>crowbar_post</filename>
<source>
<![CDATA[
export PS4='${BASH_SOURCE}@${LINENO}(${FUNCNAME[0]}): '
HOSTNAME="<%= @node_fqdn %>"
cat <<EOF > /etc/crowbarrc
[default]
server = <%= @crowbar_protocol %>://<%= @admin_node_ip %>
username = <%= @crowbar_client_username %>
password = <%= @crowbar_client_password %>
<% unless @crowbar_verify_ssl %>
verify_ssl = 0
<% end %>
EOF
curl -s -o /usr/sbin/crowbar_join <%= @crowbar_join %>
chmod +x /usr/sbin/crowbar_join
mkdir -p /var/log/crowbar
crowbarctl restricted transition $HOSTNAME "os-upgraded"
# Wait for DHCP to update - this is mainly for virtual environments or really large deploys
sleep 30
sync
]]>
</source>
</script>
<% if @needs_openvswitch -%>
<script>
<chrooted config:type="boolean">true</chrooted>
<debug config:type="boolean">true</debug>
<filename>openvswitch_upgrade</filename>
<source>
<![CDATA[
# Remove the stuff that is not needed any more on SLE12
chkconfig -d openvswitch-switch
rm -f /etc/init.d/ovs-ifup-br-*
systemctl enable openvswitch
rm -f /etc/openvswitch/conf.db* /etc/openvswitch/.conf.db*
]]>
</source>
</script>
<% end -%>
<script>
<chrooted config:type="boolean">true</chrooted>
<debug config:type="boolean">true</debug>
<filename>fix_alternatives</filename>
<source>
<![CDATA[
# python-related alternatives are not updated, even though the binary
# names changed (2.6 to 2.7); find all broken links and fix/update them
for i in $(find /etc/alternatives -type l ! -readable -printf "%f\n") ; do
update-alternatives --auto "$i"
done
]]>
</source>
</script>
</chroot-scripts>
<init-scripts config:type="list">
<!-- /bugfix bnc#886238: https://bugzilla.novell.com/show_bug.cgi?id=886238 -->
<script>
<source>
<![CDATA[
/usr/sbin/crowbar_join --setup --verbose
]]>
</source>
</script>
</init-scripts>
</scripts>
<software>
<packages config:type="list">
<package>autoyast2-installation</package>
<% if @architecture == "x86_64" -%>
<package>biosdevname</package>
<% end -%>
<package>netcat-openbsd</package>
<package>ruby2.1-rubygem-chef</package>
<package>suse-openstack-cloud-crowbar-release</package>
<package>supportutils-plugin-suse-openstack-cloud</package>
<% @packages.each do |package| -%>
<package><%= package %></package>
<% end -%>
</packages>
<patterns config:type="list">
<pattern>Minimal</pattern>
<pattern>base</pattern>
</patterns>
<!-- Cleanup leftover Cloud 5 packages -->
<remove-packages config:type="list">
<package>facter</package>
<package>gstreamer-0_10</package>
<package>gstreamer-0_10-lang</package>
<package>hawk</package>
<package>hawk-templates</package>
<package>ifplugd</package>
<package>ksh</package>
<package>libgstreamer-0_10-0</package>
<package>libipset2</package>
<package>libjpeg-32bit</package>
<package>libopensc2</package>
<package>libopenssl0_9_8</package>
<package>libopenssl0_9_8-32bit</package>
<package>libstdc++33</package>
<package>libtiff3-32bit</package>
<package>libyajl1</package>
<package>netdate</package>
<package>pcre-32bit</package>
<package>puppet</package>
<package>python-ordereddict</package>
<package>ruby2.1-rubygem-treetop-1_4</package>
<package>rubygem-bundler</package>
<package>rubygems</package>
<package>yast2-wagon</package>
</remove-packages>
</software>
</profile>