 My name is Michal Boczek and I work for RedHead and I take care of mainly the development of the utility called ConvertDwell. I'll talk about it just in a second, but firstly, let me start with this thing. So this workshop is going to walk you through converting a CentOS 8 system. And for those who haven't prepared for this, please get your CentOS 8 machine started or downloaded right now. So because this Vagrant set up, this Vagrant box has 900 megabytes, so it can take a while to download. And yeah, if you have your CentOS machine ready, that's even better. So, I hope you all have Vagrant installed. I tried to send an email to all of you, all the participants who marked that they are gonna join this session. So yeah, please try to, if you haven't read that, try to install Vagrant on your system and then do these two steps, Vagrant init, CentOS slash 8 and Vagrant up. And this way it's gonna start downloading the Vagrant image. So what is ConvertDwell? It is an open source utility. We've open sourced it in 2019 and this utility allows you to migrate your CentOS and or Oracle Linux system to the Retail Enterprise Linux. It's as simple as that. There's nothing more to it. And this is just a visualized how it works. So yeah, you have the CentOS or Oracle Linux system. You use the ConvertDwell utility. You'll use it today and you are brought to the Retail ecosystem. You get the Retail Enterprise Linux. Nikola, can you please pose the poll? If it's not there already? Yeah. So there is a poll. You can answer if you are going to convert your own CentOS system or if you are just starting up the Vagrant box, I suggest it. Or if you have Oracle Linux instead of CentOS, prepared for the conversion. And so here I'll tell you about the steps, what the utility does. So once you start it, execute it, it analyzes the system. It checks whether it's even possible using this utility. Then it checks if you have some third-party packages installed. And if so, it will tell you that these are not going to be converted. The utility converts only those packages that are signed by the original system vendor, that is either by CentOS or Oracle. And it gets the list of the rail repositories that are needed for the conversion. Then the Convert part. It removes some excluded packages. These are those that we know that cause some conflicts. So we remove them beforehand. You are warned about that and you can stop the conversion before it continues if you don't like that. And then we install the subscription-related packages because Red Hat Enterprise Linux requires a subscription. And then it subscribes the system and starts replacing all the packages. And then once the packages are replaced, you are asked to reboot the system just to ensure that you are booted into the newly installed RL kernel. And let's get to the next slide. So where does the tool takes the Red Hat Enterprise Linux packages from? It depends what you choose. There are two possibilities. You can either use custom repositories. That means that it's your responsibility to get the RL repositories from somewhere. You can, for example, download the DVD ISO image and mount it. Or you may have already some RL system installed. That system already has access to the RL repos. And you can repos sync them and copy them to have them available locally on the CentOS system. Or you can make them available through web server or FTP server and so on. So that is the more, let's say, more difficult approach. But the easier one is to use the Red Hat subscription manager. And we'll be using that today on our workshop. And through the subscription manager, you can connect by default to the Red Hat CDN or for companies who have larger set of machines they need to manage, they usually use Red Hat Red Hat Satellite 6 server. And yeah, that's also the possibility to use for the conversion. So here I'm just going to note that the utility has implemented a basic rollback capability. And this rollback, if there's any failure during the conversion, it reverts all the actions that the utility has taken, but only up to so-called point of no return. And the tool warns you about this point of no return. And this point is right before replacing all of the packages. And yeah, just mentioning here that the users are expected to have a complete system backup before running the tool, before the conversion. So here we get to how to get the rail subscription, which is necessary for running Red Hat Enterprise Linux. So in this workshop, we'll be using or talking about the no cost Red Hat developer subscription for individuals. And this subscription is for any individual, it's not for companies, organizations and so on. But anyone who's, we joined the session today. So basically anyone can get this subscription at no cost. And with this subscription, you can subscribe and receive updates for up to 16 systems. You get no support from Red Hat, it's self-support. And we will now get to how to create a Red Hat account with the associated subscription. So I'm just going to check if anyone has replied to the poll, probably not or maybe I'm just not seeing the results. So creating the Red Hat account, which is necessary for getting the subscription. So please go to the access.redhat.com and click on the figure out icon in the top right corner. And now I can probably show you that live. So opening access.redhat.com, clicking on the figure icon and clicking on register. This will get you to a form which you need to fill in. I'll give you some time to fill it out. Maybe you can, yeah, I'll give you just some time. So please choose the personal account. It's the one that we need if we want to get the developer subscription for individuals. And yeah, I'll just give you some time. In the meantime, I will log into my already created personal account. Okay, Q&A, definitely let me check the question. Is there any plan to offer Santos replacement for enterprise? Something like self-support or whatever. So actually the subscription I talked about no cost Red Hat developer subscription for individuals. You can use it in production as well, but only in case you have 16 servers or less. So this is not for, so when you talk about enterprise, you probably mean a bigger company, not just 16 servers. And in that case, you need, if you want to run RHEL, you need to buy the subscriptions, the regular subscriptions. But yeah, otherwise I don't think there's anything provided at least by Red Hat. Give you one more minute for complete the account creation. All right. So I hope you have all created the account that you are logged in. And now let's go to the subscription page under the Red Hat Customer Portal. That is the website access.redhat.com. And click on the subscription in the top left corner. What we just need to do now is to create a so-called activation key through which we will subscribe the system. So here you can click on manage and under manage, you get two activation keys. And I actually already have the demo key here. I will just remove it and create it once again. So please create a new activation key. You have you have none so far as a new user. So click on the new activation key. You can name it as demo key, ideally. That's what I use in the subsequent steps. And don't forget to check this this subscription, Red Hat Developer Subscription for individuals. You can leave the rest as it is by default. Okay. So considering you have the demo key created, please note this organization ID. We will need this organization ID in further steps. It's unique for each of you. So just copy and paste it somewhere and we'll use it in a while. I'll give you a couple of seconds to catch up. It's hard to tell without direct connection with the audience how far you are. Maybe you can just tell me in the chat if I'm too fast or too slow. Okay. So I will move on to the terminal and let's get to the weigh-grant box. So I will consider that you've taken the approach of using the weigh-grant box. I will actually, I have already done the weigh-grant init. So let me just go to the right folder. So I'm in the folder where I've done the weigh-grant init as I talked in the first step. And right now I will just do weigh-grant up. So it will probably, I haven't done weigh-grant in it here yet. So I'll do it the same way as you. Okay. Weigh-grant init, weigh-grant up. So weigh-grant up will start the VM virtual machine. Let's take just a couple of seconds. This is gonna be just totally clean VM, I think, prepared for us. So I'll run weigh-grant SSH, which will get us to the virtual machine. We are logged in as a weigh-grant user. So we will need actually the root privileges. So let me just run sudo-i to get logged in as root. And now we need to install convert to rel. That's actually just one of the two steps to run convert to rel is just first is to download the package. And actually I need to copy that from some other place because this gives me a broken command. Okay, yum install. And you can see that we currently host the packages in GitHub. And yeah, that's just where we have the latest release at the moment. So okay, convert rel is installed. And right now we need to run convert to rel to start the conversion. So I will let you give you a couple of seconds to have the convert to rel installed. Maybe you struggled with copying and pasting this command the same as I. So in the meantime, I'm already preparing this command to run convert to rel. So you can also copy paste this this this command from from the slides. I hope you have them available. If you if you don't see the slides, I made the link available through the description of the workshop. But I can paste the link also here to the chat. So you can copy and paste the convert to rel command. So the first parameter or option is the is the activation key. We named it the more underscore key. The second one is dash oh, that's that stands for the organization ID. That's the ID I told you to to make to copy when creating the activation key. I'll get back to it. It's it's this one. And you have your own unique one. So just use that one. And I'm also using the dash dash debug option that will just give us more output, including what commands are running under the under the hood during the conversion. And actually, yeah, so I don't see any comments. So I'm gonna just run the command to start with the conversion. So first, you are presented with the end user license agreement. So by continuing just you accept the agreement. Again, I sent in the email beforehand that also also in the event description that this eura is necessary to to read through and accept. So I'll try to go ahead. I hope you you've done that or the other ways to just accept without reading it. So I'm gonna hit yes. And now it checks the system if it's supported by the tool. And now it tells us what third party packages are installed on the system. Right now it detects only the convert to real tool. It's not signed by it's not signed by this sent sent us GPG key. So it considers it as a third party. And also I should mention that if you use the regular redhead subscription for a rail upon converting the system, the the resulting rail system is automatically eligible for redhead support. This is not the case with the developer subscription because that comes with no support. But just I wanted to tell you that because here is the sentence that redhead support won't be provided for third party packages. Okay, so right now it starts to download the subscription manager necessary for subscribing the system. I'll make the window bigger. And now it starts to subscribing the system using using what those options we provided. That means the activation key and the the organization ID. This usually takes a couple of seconds. Contacts the redhead subscription servers. In the meantime if you have any other questions and I can see another question in the Q&A. So any plan to create low-cost self-support option for businesses to replace sent us with with rail. So the only thing I know of right now is the subscription we are using now. That's the no-cost one. And I'm not really sure about the future subscription possibilities that that will come the low-cost ones. That's not not released, not available at the moment. So I can't tell. Sorry. Yeah, we just use the no-cost one. It gives you subscription for up to 16 servers at no cost. So in the meantime I will scroll up the system got subscribed and so yeah. We got subscribed and now the convert to rail enables the right repositories. It detected that we need these two repositories, rail 8 base OS and upstream. They got enabled and now there are some packages that are to be removed. They are mainly sent us only related. So here we need to agree with those packages being removed. Now the packages actually those that are to be removed are first downloaded. That's for the case of the rollback I talked about. So if anything fails now those removed packages would be installed back. Right, so now we hit the point of no return. That is after this point all the packages are to be replaced. So let's hit yes. And first is the kernel and then the rest. So now it's gonna take a couple of minutes to replace all the packages. So in the meantime let me switch to the slides and I'll tell you how to how to run convert to rail with Ansible non interactively in an automated fashion. But before that I want to just mention that there is currently a gap in the utility functionality and that is UEFI. So if your system is based on UEFI after the conversion you need to do couple of manual steps so that you can reboot without a problem. So those interested can go to this link and I'll get to the Ansible and we don't have much time so I'll probably just talk you through that and you can probably try that on your own. So this is the simplest way at least from my point of view the simplest way how to use Ansible to run convert to rail. So this is the playbook and it's basically the same what we have done manually. So the first is to install convert to rail through YAM and this is yeah this is the same URL we used before and then we run this the same command. The only difference here is the dash y option. The dash y option just answers yes to all questions. You could see in the demo that I was hitting yes manually a couple of questions so yeah using this dash y the conversion runs non interactively until the end until the system is converted and then you need to tweak the vagrant file also a bit so it depends how you want to run the Ansible playbook but because we have used the vagrant box setup so I just added a couple of lines to the vagrant file which is what you what you have in the folder in which you run vagrant init. The vagrant file has been automatically created you just need to edit it and yeah paste this content there. It just means that we are adding a new provisioning setup for the conversion running the convert to rail YAML that's the playbook we created in the previous step is convert to rail YAML with this content and then you just run vagrant up with this the option provision mit conversion that's this this name conversion and yeah that's gonna do the thing for you and let me just see whether the conversion what's the state of that at the moment so if I scroll up yeah we are currently replacing the packages so it's still gonna take probably a couple more minutes and we've got six minutes so I will go further if you see any issue with the tool during the testing of yours or if you see how it could be improved you would be really glad if you contribute and I can see Neil is on this workshop so thank you Neil you've already contributed and yeah I'm looking at the chat okay so here's the GitHub repository you can contribute to the Python code is is pretty easy to understand I believe and yeah the team who works on this tool is is welcoming to everyone and I would say pretty responsive at least we try to to be as much as possible and I've got a price for you so if you create a pull request in that repository and adding the label Defcon or maybe just mentioning it in the description and you you do that contribution until the end of March we will send you a t-shirt with convert rel theme next slide yeah there is a link to discussions on github if you have any question after the workshop just just ask there and you can definitely report a bug or request a feature you do you do that through again github through the github issues and if you file a bug report please attach the log file that's gonna help us a lot because the log file contains actually all the outputs that you can also see on on the terminal when you run around the tool and that's it from me I will just show show the outputs of the conversion on the background and now is the Q&A time so any questions you can just ask for the permission to to share the audio and you can ask right away using microphone or even in the chat if you want yeah I can see that the conversion is gonna take a couple more minutes but I believe it's gonna finish until the end of the workshop hopefully and yeah there is a new question in the Q&A has to be the PR merged to get the t-shirt or just any PR is reverted oh I believe that any PR created will eventually get merged we can just make it work together so the answer would be any PR you create and I hope you're not gonna create just some random change that that makes no sense but yeah and and about the low-cost subscriptions I would just reiterate that please stay you can you can follow the news from Red Hat I believe maybe the Red Hat blog probably can be the right place to look at maybe the Red Hat Twitter I am sure that Red Hat is looking for new ways how to allow bigger businesses who that have more than 16 servers to to get subscription as a let's say alternative to CentOS 8 and yeah so just look for the news