Commit Graph

202 Commits

Author SHA1 Message Date
Peter Ajamian 33373b4ef4
Use C locale instead of en_US (#98)
en_US is not guaranteed to be installed on all systems, but C is, so we use the
C locale to guarantee that all the dnf and rpm command output parses properly.
2021-08-14 16:37:40 +12:00
Peter Ajamian 8d68003ddf
Formatting (#97)
* Various formatting and spelling fixes.

* Tab to space for more consistent text representation across different editors.
2021-08-14 16:32:10 +12:00
Peter Ajamian 7eb310f907
Keep new packages when migrating from Stream until RockyLinux catches up (#96)
* CentOS Stream changes

* Retain CentOS Stream repositories and packages to avoid version downgrade
  issues.
* Only remove centos-stream-repos from the rpm db, do not actually uninstall the
  files.
* Rename system repositories from CentOS Stream with a "stream-" prefix to avoid
  clashing with Rockylinux system repository names.
* Disable CentOS Stream repositories after the distro-sync.

Note that these changes will leave CentOS Stream packages on the system, likely
until the next RockyLinux point release.  This is intentional to avoid issues
with downgrading package versions.

* Apply stream logic to epel-next-release.

epel-next-release is installed for CentOS stream machines with
EPEL.  Apply similar logic for epel-next as for CentOS stream.
2021-08-14 01:35:50 +12:00
Peter Ajamian d7f52751d0 Prevent attempted writes to /sys and /proc in containers.
Containers generally bind-mount /sys and /proc, so if dnf or rpm attempts to
write to write to one of them it can cause issues with the host system, or just
fail alltogether.  We set an rpm macro to prevent this from happening.
2021-08-10 02:57:26 +12:00
Peter Ajamian 2f40d60ec2 Do not attempt to update EFI boot in containers.
Containers (at least many fo them) will bind-mount /sys which works for most
cases but it means that /sys will indicate EFI boot when it is, in fact, the
host system that has EFI boot.  To fix this we use systemd-detect-virt to see if
we're running in a container and if so we don't attempt to update EFI boot.
2021-08-10 02:57:26 +12:00
Peter Ajamian 6603d6cc6e Add command for fixing ipa to known issues
ipa sometimes fails to start after migration.  We document this in known issues
along with the command to fix it.  Issue #82.
2021-08-09 16:42:47 +12:00
Peter Ajamian 1529747183 Fix shellcheck issues
Fix issues found by shellcheck.
2021-08-08 21:51:15 +12:00
Peter Ajamian 606390af59 Add -L to curl command
curl won't follow redirects without -L.  Since redirects are used by some who
have a private repository this breaks curl in those instances.  Adding -L fixes
the problem.
2021-07-16 18:56:55 +12:00
Peter Ajamian 64c74d621b
Update required bash version to 4.2 (#79)
We use features that were introduced in bash 4.2, specifically negative array
indexing.  Since EL8 comes stock with bash 4.4 this is not an issue but just in
case someone has done somethign stupid we update our version check to make sure
that at least 4.2 is being run.
2021-07-16 16:28:33 +12:00
Peter Ajamian 49d75e9788 Disable the ol and ol8 streams before enabling the rhel ones. 2021-07-16 16:06:22 +12:00
Peter Ajamian aa779583f9 Fix variable name typo. 2021-07-16 16:06:22 +12:00
Peter Ajamian 6d21220c31 Map OracleLinux stream names to RHEL.
OracleLinux renames a nubmer of module streams from rhel8 to ol8 and from rhel
to ol.  This commit maps the names back to rhel8 and rhel so that migrate2rocky
doesn't blow up on them.
2021-07-16 16:06:22 +12:00
Peter Ajamian bc7a35a1e7 Dump DNF cache before collecting system data and dnf update instead of after.
If there's going to be errors due to corrupted repos, etc we want to find out
right away so we can bail before we put the system in an unstable state.  To
this end we dump the dnf cache right away to make sure that dnf is forced to hit
the repos insteada of relying on cached data.
2021-07-15 21:07:34 +12:00
Peter Ajamian 6ee3330480 Force en_US.UTF-8
In order to properly parse output from certain commands we must ensure that
output is in the correct locale and character set.  Previously we had just set
LANG but that doesn't force the issue and some systems may still have issues.
While this change will override a person's foreign language preferences this is
preferable to it causing a failed migration.
2021-07-13 23:09:21 +12:00
Peter Ajamian 3c1c51bf35 Update README with RedHat BugZilla ID. 2021-07-09 23:10:45 +12:00
Peter Ajamian 4a27fc217f Document dnf display bug.
dnf has a bug where it will display the error message, "No matches found for the
following enable plugin patterns: config-manager".  This message is a red
herring and dnf does, in fact, find and enable the display-manager plugin for
the command.  The message may be safely ignored.
2021-07-09 22:23:18 +12:00
Peter Ajamian 23bc5d57c8 Check for dnf-plugins-core and enable config-manager
Check to make sure that dnf-plugins-core is present, and force-enable the
config-manager plugin for those dnf commands that need it in case it has been
disabled.
2021-07-09 22:23:18 +12:00
Peter Ajamian 64fd6b5f08
Fix EFI boot to work with mdadm-mirrored partitions. (#68)
* Fix EFI boot to work with mdadm-mirrored partitions.
2021-07-08 14:04:18 +12:00
Peter Ajamian f014318b79 Add system-logos-ipa to the list of system packages to swap.
system-logos-ipa -> rocky-logos-ipa
2021-07-02 20:37:44 +12:00
Peter Ajamian 24054df6f4
Check to make sure that we're not already on RockyLinux. (#64)
* Check to make sure that we're not already on RockyLinux.

Trying to migrate RockyLinux to RockyLinux can cause serious problems.
2021-07-01 18:55:27 +12:00
Peter Ajamian 1602af296a Rocky isn't RC anymore 2021-06-29 22:38:23 +12:00
Peter Ajamian ac6fbedc21
Attempt to run dnf update before the migration (#58)
* Attempt to run dnf update before the migration.

While a migration will generally work without first running dnf update, thera
are several advantages of attempting to run an update first:

* We catch corner cases that an update will solve.

* Since we're running a distro-sync at the end, it effectively updates anyways
  and the same things that will break a distro-sync will often times break an
  update.  By attempting to run the update first we will discover those
  breakages before we put the system into an unstable state and we can bail out
  if the update fails, preventing a potentially disastrous outcome.
2021-06-29 21:21:33 +12:00
Maxwell 898ad7f3ea Adds License File 2021-06-29 07:15:49 +12:00
Peter Ajamian dfce36e61a
efibootmgr needs separate disk and partition (#52)
* efibootmgr needs separate disk and partition

efibootmgr needs a separate device (/dev/xxx) and partition number.

Co-authored-by: McNutnut <mcnutnut90@gmail.com>
2021-06-27 21:53:34 +12:00
Peter Ajamian aba39dd294 Suggest to remove dnf-plugin-subscription-manager
issue 40
2021-06-25 22:54:48 +12:00
Klaus Sperner 716c0ac89c
rocky-linux/rocky-tools#41 Add note to README about OpenJDK packages (#47)
* rocky-linux/rocky-tools#41 Add note to README about OpenJDK packages

* rocky-linux/rocky-tools#41 Add note to README about OpenJDK packages

- add link to bugzilla entry
- add workaround script
2021-06-25 19:43:19 +12:00
Louis Abel 062f6c44bd
Merge pull request #38 from breca/main
Continues on empty lines from repoquery
2021-06-23 21:34:17 -07:00
Louis Abel 32ab115ea2
Merge pull request #37 from StackKorora/Fix-broken-link
Update broken link in mirror readme
2021-06-23 21:34:01 -07:00
Louis Abel 0aafb93884
Merge pull request #35 from lumarel/main
Improve checks against modified default repositories
2021-06-23 21:29:45 -07:00
Louis Abel f925ff6d09
Merge pull request #43 from robert-scheck/rocky-logos-httpd
Add mapping for rocky-logos-httpd
2021-06-23 21:29:27 -07:00
Robert Scheck 9c5c8519d3 Add mapping for rocky-logos-httpd 2021-06-22 22:50:07 +02:00
Brett C eeff0c3b94 Refactor for more efficient evaulation 2021-06-22 19:03:18 +10:00
Brett C 078779f2e6 Continues on empty lines from repoquery 2021-06-22 18:38:20 +10:00
Louis Abel e118e7a0fd
Merge pull request #36 from pajamian/main
Fix issue with oracle 8.4, shellcheck directives
2021-06-21 14:20:52 -07:00
lumarel 17b6ad6ebb Strengten other check 2021-06-21 22:52:27 +02:00
lumarel 9a6ad7a5f2 Improve wording and always block if Katello was configured 2021-06-21 22:50:40 +02:00
lumarel ad5f8b2e27 More checking to make sure to not get any other configurations 2021-06-21 20:58:48 +02:00
StackKorora 07f1ee9845
Update broken link 2021-06-21 10:31:37 -05:00
Peter Ajamian d9b0081501 Fix issue with migration from Oracle 8.4
Oracle 8.4 moved some files from their oraclelinux-release package to a new
package named redhat-release.  This update makes sure to remove redhat-release
as well as the other packages during migration to avoid conflicts with
rocky-release.
2021-06-22 03:06:16 +12:00
lumarel 00cff404c8 Improve checks against modified default repositories 2021-06-20 23:08:30 +02:00
Peter Ajamian 058fec2a60
Merge branch 'rocky-linux:main' into main 2021-06-21 06:56:38 +12:00
Peter Ajamian 6957c0c4dd Add shellcheck directives
Some commands trigger false positives in shellcheck.  Add directives to tell
shellcheck not to complain about them.
2021-06-21 06:54:44 +12:00
Louis Abel 5fd8f36329
Merge pull request #34 from pajamian/main
Add Color back in, Fix Subscription Manager Issues
2021-06-20 10:35:19 -07:00
Peter Ajamian 5dc03bc40d Fix subscription-manger issues.
After a RHEL conversion any attempt to run subscription-manager would result in
an error.  this was due to the RedHat certs having been replaced on the system
during the migration.  To fix this we now copy any subscription-manager certs to
a temporary directory and if they have been removed during the migration we copy
them back at the finish.  This means that subscription-manager now won't stop
working after a migration from RHEL.
2021-06-21 05:10:24 +12:00
Peter Ajamian 51378a2efc Merge branch 'main' of github.com:pajamian/rocky-tools into main 2021-06-21 00:12:40 +12:00
Peter Ajamian fe473ae20b Add color back in
We previously removed color because (1) it was outputting the color codes to the
log file, which we do not want and (2) nobody could agree on what colors to use.
I've reintroduced color now fixing (1) by allowing for separate output to the
log file and the console and only sending the color codes to the console and (2)
well, I've changed the blue for info messages to cyan, hopefully everyone's
happy with that, but I'm open to suggestions on the info color.

There are now three more file descriptors for specialized output control, making a total of 5:

fd1 - This sends to stdout and to the log file.
fd2 - This sends to stderr and the log file.
fd3 - This just sends to stdout.
fd4 - This just sends to stderr.
fd5 - This just sends to the logfile.

There are also three additional functions:

msg_format - Intended to be used by infomsg and errmsg, this accepts a variable
name and one or more string args.  If there is just one string after the
variable name then it is copied to the variable verbatim.  If there is more than
one then it is taken to be a format specifier and additional args to be passed
to printf (output going to the variable).

infomsg - This will accept either a single arg which contains a verbatim string
or multiple format / args to be processed by printf.  The output of this will be
sent to the log file and also color coded and sent to stdout.

errmsg - Like infomsg but it uses the error color and sends output to stderr
instead of stdout.
2021-06-21 00:01:02 +12:00
Neil Hanlon d94098d26d
Merge pull request #33 from pajamian/main
Minor change: Don't output /etc/issue when migration is complete.
2021-06-13 10:58:43 -04:00
Peter Ajamian c7f8aae697 Merge branch 'main' of github.com:pajamian/rocky-tools into main 2021-06-13 15:08:49 +12:00
Peter Ajamian a4faff4b22 Don't output /etc/issue
/etc/issue used to contain a nice ascii-art RockyLinux logo that we would output
when this script was finished, but it doesn't anymore so there is no longer any
value to outputting this file.
2021-06-13 15:06:49 +12:00
Neil Hanlon 2d4a24b5fc
Merge pull request #32 from pajamian/main
Move some checks to the top of the script.
2021-06-12 09:00:16 -04:00