meena | how are cloud sources documented? | 11:07 |
---|---|---|
meena | i was gonna complain in this pr that https://github.com/canonical/cloud-init/pull/522/files this is a little light on documentation, but, they all are https://github.com/canonical/cloud-init/blob/master/cloudinit/sources/DataSourceEc2.py | 11:08 |
absc | Hi, I have a problem with booting a CentOS 8 machine converted to cloudlinux with cloudinit. | 12:48 |
absc | It fails configuring the network cards | 12:49 |
absc | To note: the same settings with a plain CentOS 8, works just finne | 12:51 |
absc | *fine | 12:51 |
meena | absc: how, exactly, does it fail? do you have a log of a run? | 13:13 |
absc | 2020-09-09 12:57:43,608 - stages.py[ERROR]: Unable to render networking. Network config is likely broken: No available network renderers found. Searched through list: ['eni', 'sysconfig', 'netplan'] | 13:14 |
absc | If you want the whole log, just PM me | 13:14 |
absc | This is the only error in the run | 13:14 |
absc | meena: would you prefer the whole log with, also, debugging enabled? | 13:16 |
meena | yes. and also, if you pm it me, it's not gonna be useful for anyone else here. so please use a pastebin service | 13:23 |
meena | in general, I'm just here to ask you leading questions, until you can either help yourself, or the people with the @ in front of their names wake up | 13:24 |
meena | absc: unless your questions are BSD related, then I'm usually your girl | 13:24 |
absc | Ok, don't worry :D | 13:25 |
absc | https://pastebin.com/GC0naTY4 | 13:25 |
absc | meena: here we go the logs | 13:25 |
meena | Where's /var/log/cloud-init-output.log ? | 13:27 |
absc | Just a moment | 13:29 |
absc | meena: https://pastebin.com/6Pmvt7sg | 13:33 |
absc | The cloud-init-output.log | 13:33 |
meena | Error, this is a private paste. If this is your private paste, please login to Pastebin first. | 13:34 |
absc | I'm an idiot | 13:34 |
meena | technology hard, | 13:35 |
absc | https://pastebin.com/BCqLC2Zn | 13:35 |
absc | meena: this should be correct | 13:35 |
meena | that's fun | 13:37 |
absc | I think the output have too much noise, due to puppet being executed by cloud-init | 13:38 |
meena | so puppet is absolutely unconcerned about the network not being up | 13:38 |
meena | but the rhn Plugin isn't happy | 13:38 |
absc | The VM is derived from a template. Is it possible that the old ips are kept before being changed? | 13:39 |
absc | BTE, NetworkManager is installed on the machine | 13:41 |
absc | *BTW | 13:41 |
meena | absc: can you find what the network config looks like that this VM receives, and post that? | 13:47 |
meena | also, which version of cloud-init does your *not* CloudLinux VM have? | 13:48 |
absc | The NOT CloudLinux Vm use cloud-init 19.4.1 | 13:52 |
meena | so, pretty much the same | 13:54 |
absc | meena: https://pastebin.com/iU5n0jb2 | 13:55 |
absc | Yes, it's the same | 13:56 |
absc | The paste bin is what the VM have right now | 13:56 |
absc | The iPS are the ones used to build the template machine | 13:57 |
absc | But, the server ip's are in the same subnet | 13:57 |
absc | And assigned to the same network interfaces | 13:58 |
meena | who or what is assigning the IPs? | 14:09 |
absc | The IPs are assigned by RHEV/Ovirt | 14:10 |
absc | In our casa, with the ENI protocol | 14:11 |
absc | *case | 14:11 |
meena | why does the template have an IP? shouldn't it cleanup itself before creating an image? | 14:14 |
absc | To be fair, we didn't bother removing those before making the template and the sealing doesn't remove it. We can try that, though. | 14:15 |
absc | Otherwise, it worked anyway | 14:15 |
absc | But, let me tell my collegue to make an attempt | 14:15 |
absc | meena: We tried to remove all the IPs from the template before booting a cloned machine. It doesn't work | 15:41 |
absc | Also, the cloud-init log show the same things as the pastebin I sent you | 15:41 |
absc | BTW, we are using the stock cloud-init configuration as coming from the CentOS 8 repositories. | 15:43 |
Odd_Bloke | absc: I (and perhaps others) missed the start of this conversation because of the Freenode downtime/netsplit which kicked me out of the channel until I logged in this morning; could you restate the problem you're having? | 16:12 |
Odd_Bloke | (And re-paste things, perhaps: all those pastebin links are 404ing, I think.) | 16:12 |
absc | Odd_Bloke: I'm going to give you a new paster bin | 16:15 |
absc | Odd_bloke: https://pastebin.com/tiufNMwH | 16:17 |
absc | Here is the cloud-init-output.log file | 16:17 |
absc | TL;DR we use cloud-init to start and configure our hosting servers | 16:17 |
absc | The servers are in an Ovirt/RHEV environment | 16:18 |
absc | The OS is CentOS 8, converted to CloudLinux | 16:18 |
absc | If we boot a plain CentOS 8 machine, everything is fine | 16:19 |
absc | Cloud-init is able to properly configure the IP addresses we specify in the VM definition | 16:19 |
absc | And assign it to eth0 and eth1 | 16:19 |
absc | But if we try to boot a CloudLinux OS machine (essentially, CentOS 8 + a custom kernel and some tooling) | 16:20 |
absc | Cloud-init fails with an error as you see in the pastebin | 16:20 |
absc | Complaining that: 2020-09-09 12:35:04,855 - stages.py[ERROR]: Unable to render networking. Network config is likely broken: No available network renderers found. Searched through list: ['eni', 'sysconfig', 'netplan'] | 16:21 |
absc | We tried varois things, but without luck | 16:21 |
absc | Odd_Bloke: tel me if you need additional informations | 16:22 |
Odd_Bloke | absc: Could I get cloud-init.log too, please? | 16:22 |
absc | Odd_Bloke: https://pastebin.com/HCfBuVvV | 16:36 |
absc | Here is the whole log | 16:37 |
Odd_Bloke | absc: Are you expecting to render ENI or sysconfig within the instance? | 17:37 |
meena | Odd_Bloke: their template has ENI…stuff. | 17:39 |
Odd_Bloke | meena: I don't know what a template is in this context. :) | 17:40 |
meena | machine template | 17:40 |
Odd_Bloke | As in an image? | 17:40 |
Odd_Bloke | (A disk image, I mean.) | 17:41 |
Odd_Bloke | meena: It's worth noting that the log implies that cloud-init fetched ENI from the metadata service; this is normal in OpenStack/ConfigDrive, but does not imply that the running system will be using ENI. | 17:42 |
meena | 16:10 <absc> The IPs are assigned by RHEV/Ovirt | 17:43 |
meena | 16:11 <absc> In our casa, with the ENI protocol | 17:43 |
Odd_Bloke | Right, that's what I mean. | 17:43 |
Odd_Bloke | RHEV/Ovirt is providing the network config in ENI format, but it does not necessarily mean that the system uses ENI. | 17:43 |
meena | they also have NetworkManager installed | 17:43 |
meena | aye | 17:43 |
Odd_Bloke | cloud-init will parse the provided ENI and then render the appropriate configuration for the system. | 17:43 |
Odd_Bloke | The problem here is that it can't detect which network renderer is appropriate. | 17:44 |
meena | Odd_Bloke: how do you tell that? and wouldn't it be nice if it was easier to tell that from the log? | 17:45 |
Odd_Bloke | 2020-09-09 16:33:01,851 - stages.py[ERROR]: Unable to render networking. Network config is likely broken: No available network renderers found. Searched through list: ['eni', 'sysconfig', 'netplan'] | 17:46 |
Odd_Bloke | Doesn't seem like a horrible log message to me. | 17:46 |
meena | oy | 17:47 |
Odd_Bloke | Not sure that "Network config is likely broken" is right, at least not in this situation. | 17:47 |
Odd_Bloke | If I had to guess (wildly), I would say that /etc/network/interfaces has been removed (perhaps in an attempt to avoid the network config continuing to apply on launched instances?) which means that cloud-init doesn't detect ENI as an option on this system: https://github.com/canonical/cloud-init/blob/master/cloudinit/net/eni.py#L542-L550 | 17:49 |
Odd_Bloke | absc: If you're expecting to render ENI in the system, then https://github.com/canonical/cloud-init/blob/master/cloudinit/net/eni.py#L542-L552 needs to return True. If you're expecting sysconfig, then https://github.com/canonical/cloud-init/blob/master/cloudinit/net/sysconfig.py#L899-L903 needs to return True. | 17:50 |
Odd_Bloke | absc: Hopefully that will give you an idea of what you're doing to the template that is causing cloud-init to fail. :) | 17:53 |
rharper | Odd_Bloke: absc: several thoughts; 1) the in-image network config does not provide any mac address; so there's no way it will ever configure interfaces; 2) this is on RHEL, and you need to have sysconfig support enabled; cloud-init doesn't render to NetworkManager directly 3) for RHEL8 with NM (and the requires sysconfig package installed) NM will read rendered sysconfig files from cloud-init, however since (1) is bad (no mac address for your | 17:55 |
rharper | interfaces even after fixing the image, you'll need to fix 1 as well; | 17:55 |
rharper | absc: for RHEL8 I highly suggest looking at the packages installed in the Centos8 Cloud image; | 17:55 |
rharper | https://cloud.centos.org/centos/8/x86_64/images/ | 17:56 |
Odd_Bloke | rharper: I thought this was already on Centos 8? | 17:57 |
rharper | likely not proper cloud image | 17:57 |
rharper | otherwise sysconfig would be detected | 17:57 |
rharper | I've booked those from Centos8 I just linked to and it works fine; so something's not right w.r.t the packages | 17:57 |
Odd_Bloke | Yeah, I think they're building their own images for "CloudLinux"? | 17:57 |
rharper | wasn't there some discussion of making a template? | 17:57 |
rharper | yeah | 17:57 |
meena | the word template has become meaningless over the past couple hours | 17:59 |
meena | btw, minimal mentioned yesterday that cloud-utils provides tooling support for NoCloud, but if that's this thing: https://pypi.org/project/cloud-utils/ then that's not even almost true. | 18:02 |
smoser | "the word template has become meaningless over the past couple hours" | 18:13 |
* smoser agrees. but i don't think that is new in the last couple hours. | 18:14 | |
Odd_Bloke | meena: It's the cloud-utils Ubuntu package whose upstream is https://github.com/canonical/cloud-utils/ | 18:26 |
Odd_Bloke | (As you can see, we don't even have a setup.py there, so I don't know how you would get it on other distros/OSes.) | 18:28 |
absc | Odd_Bloke: Sorry, I was away for an emergency | 19:54 |
absc | As you (correctly) pointed out, we are talking about a pre-made image here | 19:57 |
absc | If I remember correctly, we started, with the base system, from a CentOS 8 cloud image | 19:59 |
absc | After that, with puppet, we install and configure a bunch of things | 19:59 |
absc | In one of those steps, the operating system is converted from CentOS 8 to CloudLinux 8 | 20:00 |
absc | (CloudLinux 8 being nothing more than a customised CentOS 8) | 20:00 |
absc | Probably, from what all of you told me, I'm missing some packages. I need to read all the past conversation and do some checks tomorrow morning | 20:01 |
absc | (Sorry guys, I'm on the other side of the world) :D | 20:01 |
Odd_Bloke | absc: No problem, let us know how it goes! (And hopefully Freenode will let me read what you said during my night this time around. :p) | 20:10 |
absc | Thank you again! | 20:11 |
meena | Odd_Bloke, this thing seems awfully… bashy, https://github.com/canonical/cloud-utils/blob/master/bin/cloud-localds and Where's the remoteds equivalent | 20:42 |
Odd_Bloke | meena: What would a remoteds equivalent do? | 20:49 |
meena | i have literally no idea | 20:49 |
meena | probably serve three files, lol | 20:50 |
Odd_Bloke | Ah, then you can get it on Ubuntu with `apt install nginx`. ;) | 20:50 |
Odd_Bloke | Or it comes out of the box with `python3 -m http.server`, if you really want. :p | 20:51 |
meena | Odd_Bloke, I'm actually unable to install nginx. forbidden… for reasons | 21:18 |
Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!