Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Not working with CentOS VMs? #17

Closed
trydis opened this issue Mar 30, 2015 · 15 comments
Closed

Not working with CentOS VMs? #17

trydis opened this issue Mar 30, 2015 · 15 comments

Comments

@trydis
Copy link

trydis commented Mar 30, 2015

I've tried creating both CentOS 6.6 and 7.0 VMs through the preview portal and the bootstrapping process fails.

CommandExecution.log

2015/03/30 12:16:53 Found RuntimeSettings for Chef.Bootstrap.WindowsAzure.LinuxChefClient V 11.16.4.2
2015/03/30 12:16:53 Spawned install.sh PID 1759
2015/03/30 12:16:58 Process 1759 returned non-zero exit code (1)
2015/03/30 12:16:58 Installation failed for Chef.Bootstrap.WindowsAzure.LinuxChefClient-11.16.4.2

Manually running install.sh

/var/lib/waagent/Chef.Bootstrap.WindowsAzure.LinuxChefClient-11.16.4.2
Installing Chef
installing with rpm.../var/lib/waagent/Chef.Bootstrap.WindowsAzure.LinuxChefClient-11.16.4.2/bin/..//installer/chef-client-latest.rpm
error: open of /var/lib/waagent/Chef.Bootstrap.WindowsAzure.LinuxChefClient-11.16.4.2/bin/..//installer/chef-client-latest.rpm failed: No such file or directory
Chef Client installation failed

The installer directory only contains chef-client-latest.deb.

@trydis
Copy link
Author

trydis commented Mar 31, 2015

Contents of the zip file, from a CentOS 6.6 VM, no chef-client-latest.rpm:

Archive:  Chef.Bootstrap.WindowsAzure__LinuxChefClient__11.18.6.1.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  03-30-2015 13:15   bin/
      484  03-30-2015 13:15   bin/chef-disable.rb
      477  03-30-2015 13:15   bin/chef-enable.rb
     1836  03-30-2015 13:15   bin/chef-install.sh
     2544  03-30-2015 13:15   bin/chef-uninstall.sh
     1230  03-30-2015 13:15   bin/chef-update.sh
      190  03-30-2015 13:15   disable.sh
      188  03-30-2015 13:15   enable.sh
        0  03-30-2015 13:15   gems/
    29696  03-30-2015 13:15   gems/azure-chef-extension-0.0.1.gem
      293  03-30-2015 13:15   HandlerManifest.json
      136  03-30-2015 13:15   install.sh
        0  03-30-2015 13:15   installer/
 32482204  03-30-2015 13:15   installer/chef-client-latest.deb
      132  03-30-2015 13:15   uninstall.sh
      129  03-30-2015 13:15   update.sh
        0  03-30-2015 13:15   version_11.18.6.1_20150330_ubuntu
---------                     -------
 32519539                     17 files

@trydis
Copy link
Author

trydis commented Mar 31, 2015

Looking at the source code and CommandExecution.log it seems to get off on the wrong foot.

2015/03/31 21:30:47 Downloading plugin manifest: Chef.Bootstrap.WindowsAzure.LinuxChefClient from http://rdfepirv2db3prdstr02.blob.core.windows.net/0fa68ca509a643f49117169ef78baf70/Chef.Bootstrap.WindowsAzure_LinuxChefClient_europenorth_manifest.xml

It shouldn't download Chef.Bootstrap.WindowsAzure_LinuxChefClient_europenorth_manifest.xml but rather Chef.Bootstrap.WindowsAzure_CentosChefClient_europenorth_manifest.xml.

The full URL would be http://rdfepirv2db3prdstr02.blob.core.windows.net/0fa68ca509a643f49117169ef78baf70/Chef.Bootstrap.WindowsAzure_CentosChefClient_europenorth_manifest.xml.

@Vasu1105
Copy link
Contributor

Vasu1105 commented Apr 1, 2015

@trydis azure-chef-extension is not supported for CentOS on azure portal right now.

@trydis
Copy link
Author

trydis commented Apr 1, 2015

Any time frame on when it will be supported? Looks like most (all?) of the code is already in the scripts. Not a big deal, since I can use knife to bootstrap the nodes, just curious 😄

@NimishaS
Copy link

No plans to support CentOS as of now. But we'll consider this in future.

@adamedx
Copy link

adamedx commented Aug 5, 2015

We do need to address this as soon as the Azure portal can handle two different Linux distros.

@ghost
Copy link

ghost commented Aug 7, 2015

The chef-install.sh already supports CentOS. The only thing missing is the file installer/chef-client-latest.rpm in the package.

@ghost
Copy link

ghost commented Aug 11, 2015

@vlibertucci
Copy link

Hi , I'm Vittorio from Azure support - we are currently discussing this with the respective Microsoft and Chef development teams
Thanks
Vittorio

@NimishaS
Copy link

We have started work on this issue. Instead of keeping installers for both ubuntu and centos in same LinuxChefClient package, we are going to use yum repo for installing centos package.

@adamedx
Copy link

adamedx commented Aug 13, 2015

@tmaierACN as @NimishaS states, this is being worked on. For transparency, the key problem here is mismatch in UX assumptions in Azure Resource manager which assumes that one extension works on all Linux distributions vs. the extension which was originally intended to be published for each distribution.

The initial fix will use Chef's public (Internet-based) yum repos to avoid the need to package binaries. We are finalizing a plan to use yum repos internal to Azure to retain the Ubuntu case's performance, reliability, and security benefits of requiring no Internet access to the guest VM.

Here is a much longer explanation of the situation:

The original motivation for one extension per distro was that the while the extension's code contains installation code that should work an multiple Linux distributions, it also contains chef-client binaries.

  • When the extension was first implemented, there was no Internet-based yum repository from which to obtain the packages, so including the binaries was the best option.
  • The extension contains binaries for only one OS distro to avoid large package sizes and attendant speed reliability issues that go along with large package, and this leads to an extension that is specific to OS distribution.
  • The guest agent with which the extension integrates happened to stabilize first for Ubuntu, so that platform was implemented first.
  • The Azure Resource Manager however only distinguishes between Windows and Linux, and UX-focused tools like the Azure portal are thus not able to use the ARM API to identify an extension specific to CentOS -- there can only be one extension for all Linux distros as far as ARM is concerned.
  • To avoid regressing UX scenarios for users of the existing Ubuntu extension, we focused on getting a yum repo from which we could publish the package. That repository is fairly extensive and contains many products, so that was a non-trivial undertaking and has taken longer than we'd like from the standpoint of the extension.

Now that we have the yum repository, we can move forward with adding CentOS support without including CentOS binaries and adhere to the design requirement for a generic Linux extension.

@ghost
Copy link

ghost commented Aug 13, 2015

Cool. Thank you for this detailed update, @adamedx.

@hough01
Copy link

hough01 commented Aug 13, 2015

So how can I install Chef on Centos using 'CentosChefClient extension' or 'LinuxChefClient extension'?

@adamedx
Copy link

adamedx commented Aug 13, 2015

@hough01, due to this bug, there isn't a way to do this using the Azure resource manager commands, but we hope to have a fix soon.

However, if you have a workstation (Linux or Windows) where you've installed Chef-DK, you can gem install knife-azure to use the knife-azure plugin to configure an Azure node with Chef.

@NimishaS
Copy link

azure-chef-extension 1210.12.4.1001 has been published for linux with centos support.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants