After renaming bin/subiquity to bin/subiquity-tui we broke a
few things that invoked subiquity via bin/subiquity which is
now bin/subiquity-tui
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
Add debugging and logging for is_root check.
Fix up logic so we check if sudo_user is non None
Now we can see disk info when running as root in the installer.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
geninstaller, which is installed as /usr/bin/subiquity-geninstaller
needed some changes to allow it to run outside of the build tree.
Quieted the output from geninstaller a lot and redirect the verbosity
into the log file.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
Enhance our mounted disk detection. Don't display these
devices unless we're in dry-run mode. Add support for
the case where we don't have any disks and prevent
the installer from progressing.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
Instead of tracking many directories, we'll use only one
overlay directory to hold any scripts or change we want to
see applied over the base image.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
overlayfs changed mount options between different kernel versions.
In some cases, an Ubuntu release may have a different kernel than
what was included during the release, so instead use the version
included in the module itself to determine what parameters to pass
when mounting.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
- Fix up issues with efi mode grub serial configuration
- Modify blockdev model to order storage configuration output
- Handle when we're running in uefi mode
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
Use a flag to set efi mode or not. Switch to IDE controller for
disks as UEFI bios doesn't support virtio block devices.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
Update grub2 configuration for UEFI booting with fallback to bios mode.
Include new detection scheme so we don't list existing partitions of the
installer.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
We use cloud-init to create the initial user on the target system.
Ensure the password login works, that it has a shell (/bin/bash)
and sudo privs via group admin.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
With updated kernels, overlayroot programs will fail with
a disconnected_path error. Resolve our use of dhclient by
adding the allow_disconnected flag to the profile.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
- Pass in write_fd into async commands so output calls refresh
- Hack the threadpool to a single task so we trivially block on the long
install and don't invoke our post install until the other is complete
- lots of debugging for command outputs.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
Move config writeout to a non-coroutine method.
Add realname collection (needed for userinfo)
Add debugging to help find issue with async commands
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
Break out curtin configuration data into multiple configuration files
This sets up our initial install (network +storage) and our secondary
run (postinstall user config).
- encrypt the users password and never log the original value
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
Conflicts:
subiquity/controllers/filesystem.py
Update network model to generate a network configuration for each
active network device. Note, some of the examples won't quite work
since we now want updated probert data which includes new information
about the source of any discovered ip.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
We use cloud-init to create the initial user on the target system.
Ensure the password login works, that it has a shell (/bin/bash)
and sudo privs via group admin.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
With updated kernels, overlayroot programs will fail with
a disconnected_path error. Resolve our use of dhclient by
adding the allow_disconnected flag to the profile.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
We can't use curses_display with an external event loop (tornado). The good
news is that we don't have to. Instead we switch to using agetty to bypass
login, specify the installer and options to execture. This also handles
respawning the installer and works both on serial and without.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>