Fix Tumbleweed (hopefully)
Move Tumbleweed to using the Agama installer Change it from fully dynamic to using the update script
This commit is contained in:
@@ -1,8 +1,6 @@
|
|||||||
distro = "opensuse"
|
distro = "opensuse"
|
||||||
version = "16.0"
|
version = "16.0"
|
||||||
iso = {
|
iso = {
|
||||||
#url = "https://download.opensuse.org/distribution/leap/16.0/installer/iso/agama-installer.x86_64-Leap_16.0.iso"
|
|
||||||
#checksum = "d3e7a86c4ab7296480ad41a2ca30bde5cad0ff2210b145dd2011403f648f76cb"
|
|
||||||
url = "https://download.opensuse.org/distribution/leap/16.0/installer/iso/agama-installer.x86_64-17.0.0-Leap_16.0-Build151.4.iso"
|
url = "https://download.opensuse.org/distribution/leap/16.0/installer/iso/agama-installer.x86_64-17.0.0-Leap_16.0-Build151.4.iso"
|
||||||
checksum = "d3e7a86c4ab7296480ad41a2ca30bde5cad0ff2210b145dd2011403f648f76cb"
|
checksum = "d3e7a86c4ab7296480ad41a2ca30bde5cad0ff2210b145dd2011403f648f76cb"
|
||||||
}
|
}
|
||||||
@@ -16,6 +14,5 @@ boot_command = [
|
|||||||
"<leftCtrlOn>x<leftCtrlOff>"
|
"<leftCtrlOn>x<leftCtrlOff>"
|
||||||
]
|
]
|
||||||
boot_wait = "8s"
|
boot_wait = "8s"
|
||||||
cd_files = [ "distros/opensuse/16.0/http/" ]
|
|
||||||
http_directory = "distros/opensuse/16.0/http/"
|
http_directory = "distros/opensuse/16.0/http/"
|
||||||
vbox_os_type = "OpenSUSE_Leap_64"
|
vbox_os_type = "OpenSUSE_Leap_64"
|
||||||
|
|||||||
@@ -1,37 +0,0 @@
|
|||||||
#!env bash
|
|
||||||
|
|
||||||
set -x
|
|
||||||
|
|
||||||
name="${0%.sh}"
|
|
||||||
|
|
||||||
base="https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso"
|
|
||||||
|
|
||||||
# Working directory
|
|
||||||
tmp="$(mktemp -d)"
|
|
||||||
checksums="${tmp}/checksums"
|
|
||||||
|
|
||||||
# Read the SHA256 sum value
|
|
||||||
sums="${base}.sha256"
|
|
||||||
until curl -f -L -o "${checksums}" "${sums}"; do
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
sha="$(cut -d' ' -f 1 "${checksums}")"
|
|
||||||
|
|
||||||
cat << EOF > "${name}"
|
|
||||||
distro = "opensuse"
|
|
||||||
version = "tumbleweed"
|
|
||||||
iso = {
|
|
||||||
url = "${base}"
|
|
||||||
checksum = "${sha}"
|
|
||||||
}
|
|
||||||
boot_command = [
|
|
||||||
"e<wait>",
|
|
||||||
"<down><down><down><down><end><wait>",
|
|
||||||
" autoyast=http://{{ .HTTPIP }}:{{ .HTTPPort }}/autoinst.xml textmode=1<wait>",
|
|
||||||
"<leftCtrlOn>x<leftCtrlOff>"
|
|
||||||
]
|
|
||||||
http_directory = "distros/opensuse/tumbleweed/http/"
|
|
||||||
vbox_os_type = "OpenSUSE_Tumbleweed_64"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
rm -r "${tmp}"
|
|
||||||
@@ -1,125 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<!DOCTYPE profile>
|
|
||||||
<!-- https://doc.opensuse.org/projects/autoyast/#CreateProfile-General -->
|
|
||||||
<profile xmlns="http://www.suse.com/1.0/yast2ns"
|
|
||||||
xmlns:config="http://www.suse.com/1.0/configns">
|
|
||||||
<general>
|
|
||||||
<mode>
|
|
||||||
<confirm config:type="boolean">false</confirm>
|
|
||||||
<final_reboot config:type="boolean">true</final_reboot>
|
|
||||||
</mode>
|
|
||||||
<!-- self_update config:type="boolean">true</self_update -->
|
|
||||||
</general>
|
|
||||||
<groups config:type="list">
|
|
||||||
<group>
|
|
||||||
<groupname>wheel</groupname>
|
|
||||||
<userlist>vagrant</userlist>
|
|
||||||
</group>
|
|
||||||
</groups>
|
|
||||||
<firewall>
|
|
||||||
<enable_firewall config:type="boolean">true</enable_firewall>
|
|
||||||
<default_zone>external</default_zone>
|
|
||||||
<zones config:type="list">
|
|
||||||
<zone>
|
|
||||||
<name>public</name>
|
|
||||||
<interfaces config:type="list">
|
|
||||||
<interface>eth0</interface>
|
|
||||||
</interfaces>
|
|
||||||
<services config:type="list">
|
|
||||||
<service>ssh</service>
|
|
||||||
</services>
|
|
||||||
</zone>
|
|
||||||
</zones>
|
|
||||||
</firewall>
|
|
||||||
<partitioning config:type="list">
|
|
||||||
<drive>
|
|
||||||
<use>all</use>
|
|
||||||
<partitions config:type="list">
|
|
||||||
<partition>
|
|
||||||
<mount>/boot</mount>
|
|
||||||
<size>512MiB</size>
|
|
||||||
</partition>
|
|
||||||
<partition>
|
|
||||||
<mount>/</mount>
|
|
||||||
<size>max</size>
|
|
||||||
</partition>
|
|
||||||
</partitions>
|
|
||||||
</drive>
|
|
||||||
</partitioning>
|
|
||||||
<language>
|
|
||||||
<language>en_US</language>
|
|
||||||
</language>
|
|
||||||
<networking>
|
|
||||||
<backend>network_manager</backend>
|
|
||||||
</networking>
|
|
||||||
<services-manager>
|
|
||||||
<services>
|
|
||||||
<enable config:type="list">
|
|
||||||
<service>sshd</service>
|
|
||||||
</enable>
|
|
||||||
</services>
|
|
||||||
</services-manager>
|
|
||||||
<software>
|
|
||||||
<packages config:type="list">
|
|
||||||
<package>openssh</package>
|
|
||||||
<package>sudo</package>
|
|
||||||
</packages>
|
|
||||||
<do_online_update config:type="boolean">true</do_online_update>
|
|
||||||
<install_recommended config:type="boolean">false</install_recommended>
|
|
||||||
<products config:type="list">
|
|
||||||
<product>openSUSE</product>
|
|
||||||
</products>
|
|
||||||
</software>
|
|
||||||
<timezone>
|
|
||||||
<hwclock>UTC</hwclock>
|
|
||||||
<timezone>UTC</timezone>
|
|
||||||
</timezone>
|
|
||||||
<users config:type="list">
|
|
||||||
<user>
|
|
||||||
<username>root</username>
|
|
||||||
<user_password>vagrant</user_password>
|
|
||||||
<encrypted config:type="boolean">false</encrypted>
|
|
||||||
</user>
|
|
||||||
<user>
|
|
||||||
<username>vagrant</username>
|
|
||||||
<user_password>vagrant</user_password>
|
|
||||||
<encrypted config:type="boolean">false</encrypted>
|
|
||||||
</user>
|
|
||||||
</users>
|
|
||||||
<scripts>
|
|
||||||
<pre-scripts config:type="list">
|
|
||||||
<script>
|
|
||||||
<interpreter>shell</interpreter>
|
|
||||||
<filename>start.sh</filename>
|
|
||||||
<!-- <location>some_url</location> -->
|
|
||||||
<source>
|
|
||||||
<![CDATA[
|
|
||||||
#!/bin/sh
|
|
||||||
echo "Starting installation"
|
|
||||||
exit 0
|
|
||||||
]]>
|
|
||||||
</source>
|
|
||||||
</script>
|
|
||||||
</pre-scripts>
|
|
||||||
</scripts>
|
|
||||||
<files config:type="list">
|
|
||||||
<file>
|
|
||||||
<file_path>/etc/sudoers.d/vagrant</file_path>
|
|
||||||
<file_contents>
|
|
||||||
<![CDATA[
|
|
||||||
Defaults:vagrant !requiretty
|
|
||||||
vagrant ALL=(ALL) NOPASSWD: ALL
|
|
||||||
root ALL=(ALL) NOPASSWD: ALL
|
|
||||||
]]>
|
|
||||||
</file_contents>
|
|
||||||
<file_permissions>440</file_permissions>
|
|
||||||
<file_owner>root</file_owner>
|
|
||||||
</file>
|
|
||||||
<file>
|
|
||||||
<file_path>/home/vagrant/.ssh/authorized_keys</file_path>
|
|
||||||
<file_permissions>600</file_permissions>
|
|
||||||
<file_owner>vagrant</file_owner>
|
|
||||||
<file_location>https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrant.pub</file_location>
|
|
||||||
</file>
|
|
||||||
</files>
|
|
||||||
</profile>
|
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
// For more docs, check out
|
||||||
|
// https://agama-project.github.io/docs/user/profile/dynamic
|
||||||
|
// This is a Jsonnet file. Please, check https://jsonnet.org/ for more
|
||||||
|
// information about the language.
|
||||||
|
// For the schema, see
|
||||||
|
// https://github.com/openSUSE/agama/blob/master/rust/agama-lib/share/profile.schema.json
|
||||||
|
|
||||||
|
// The "hw.libsonnet" file contains hardware information from the "lshw" tool.
|
||||||
|
// Agama generates this file at runtime by running (with root privileges):
|
||||||
|
//
|
||||||
|
// lshw -json
|
||||||
|
//
|
||||||
|
// There are included also helpers to search this hardware tree. To see helpers check
|
||||||
|
// "/usr/share/agama-cli/agama.libsonnet"
|
||||||
|
local agama = import 'hw.libsonnet';
|
||||||
|
|
||||||
|
// Find the biggest disk which is suitable for installing the system.
|
||||||
|
local findBiggestDisk(disks) =
|
||||||
|
local sizedDisks = std.filter(function(d) std.objectHas(d, 'size'), disks);
|
||||||
|
local sorted = std.sort(sizedDisks, function(x) -x.size);
|
||||||
|
sorted[0].logicalname;
|
||||||
|
|
||||||
|
// Find how much physical memory system has.
|
||||||
|
local memory = agama.findByID(agama.lshw, 'memory').size;
|
||||||
|
|
||||||
|
{
|
||||||
|
product: {
|
||||||
|
id: 'Tumbleweed',
|
||||||
|
},
|
||||||
|
software: {
|
||||||
|
patterns: [
|
||||||
|
],
|
||||||
|
},
|
||||||
|
user: {
|
||||||
|
fullName: 'vagrant',
|
||||||
|
userName: 'vagrant',
|
||||||
|
password: 'vagrant',
|
||||||
|
},
|
||||||
|
root: {
|
||||||
|
password: 'vagrant',
|
||||||
|
},
|
||||||
|
localization: {
|
||||||
|
language: 'en_US',
|
||||||
|
keyboard: 'us',
|
||||||
|
},
|
||||||
|
bootloader: {
|
||||||
|
extraKernelParams: "nomodeset"
|
||||||
|
},
|
||||||
|
storage: {
|
||||||
|
boot: {
|
||||||
|
configure: true,
|
||||||
|
device: "boot",
|
||||||
|
},
|
||||||
|
drives: [{
|
||||||
|
search: findBiggestDisk(agama.selectByClass(agama.lshw, 'disk')),
|
||||||
|
alias: "boot",
|
||||||
|
ptableType: 'gpt',
|
||||||
|
partitions: [{
|
||||||
|
"search": "*",
|
||||||
|
"delete": true,
|
||||||
|
},{
|
||||||
|
"generate": "default"
|
||||||
|
}],
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
scripts: {
|
||||||
|
post: [ {
|
||||||
|
name: 'configure-vagrant',
|
||||||
|
chroot: true,
|
||||||
|
content: |||
|
||||||
|
#!/bin/bash
|
||||||
|
# Configure the insecure Vagrant SSH key
|
||||||
|
mkdir -p /home/vagrant/.ssh
|
||||||
|
curl -o /home/vagrant/.ssh/authorized_keys https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrant.pub
|
||||||
|
chown -R vagrant /home/vagrant/.ssh
|
||||||
|
chmod 600 /home/vagrant/.ssh
|
||||||
|
# Start services
|
||||||
|
systemctl enable sshd
|
||||||
|
# Configure sudo access for the vagrant user
|
||||||
|
cat << EOF > /etc/sudoers.d/00_vagrant
|
||||||
|
Defaults:vagrant !requiretty
|
||||||
|
vagrant ALL=(ALL) NOPASSWD: ALL
|
||||||
|
root ALL=(ALL) NOPASSWD: ALL
|
||||||
|
EOF
|
||||||
|
|||,
|
||||||
|
} ]
|
||||||
|
},
|
||||||
|
}
|
||||||
Executable
+24
@@ -0,0 +1,24 @@
|
|||||||
|
#!env bash
|
||||||
|
|
||||||
|
set -exo pipefail
|
||||||
|
|
||||||
|
dir="$(cd "$(dirname "${0}")"; pwd)"
|
||||||
|
|
||||||
|
base="https://download.opensuse.org/repositories/systemsmanagement:/Agama:/Devel/images/iso/agama-installer.x86_64-17.0.0-openSUSE-Build6.13.iso"
|
||||||
|
|
||||||
|
# Working directory
|
||||||
|
tmp="$(mktemp -d)"
|
||||||
|
trap "rm -rf '${tmp}'" EXIT
|
||||||
|
checksums="${tmp}/checksums"
|
||||||
|
|
||||||
|
# Read the SHA256 sum value
|
||||||
|
sums="${base}.sha256"
|
||||||
|
until curl -f -L -o "${checksums}" "${sums}"; do
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
sha="$(cut -d' ' -f 1 "${checksums}")"
|
||||||
|
|
||||||
|
sed -E -i \
|
||||||
|
-e "s,( checksum *=).*$,\1 \"$sha\","
|
||||||
|
|
||||||
|
rm -r "${tmp}"
|
||||||
Reference in New Issue
Block a user