thehyperadvisor / cldstk-deploy

apache cloudstack deployment tool
MIT License
28 stars 18 forks source link

CentOS 7 - New clean install : Error running python cldstk-deploy.py setup all #3

Closed ghost closed 9 years ago

ghost commented 9 years ago

The following output is what I get when trying to run the 'setup all'

[root@localhost cldstk-deploy]# python cldstk-deploy.py setup all Enter Password Here: Retrieving http://mirror.pnl.gov/epel/6/x86_64/epel-release-6-8.noarch.rpm Preparing... ################################# [100%] package epel-release-7-2.noarch (which is newer than epel-release-6-8.noarch) is already installed Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile

Using /usr/lib/python2.7/site-packages/cloudmonkey-5.3.0-py2.7.egg Processing dependencies for cloudmonkey Finished processing dependencies for cloudmonkey Traceback (most recent call last): File "cldstk-deploy.py", line 984, in setUp() File "cldstk-deploy.py", line 320, in setUp call(["npm","update"], shell=False) File "/usr/lib64/python2.7/subprocess.py", line 524, in call return Popen(_popenargs, *_kwargs).wait() File "/usr/lib64/python2.7/subprocess.py", line 711, in init errread, errwrite) File "/usr/lib64/python2.7/subprocess.py", line 1308, in _execute_child raise child_exception OSError: [Errno 2] No such file or directory [root@localhost cldstk-deploy]#

ghost commented 9 years ago

I also noted an issue where eth0 is actually named em1. Any thoughts on error handling or manipulating the code to support what seems to be a problem with how NICs are named.

Installing more current version of Linux means seeing your NIC's name change from "eth0" to "em1" if the NIC is embedded in the motherboard, or "p12p1" (or something similar) if your NIC is attached to the PCI bus.

I did some online research and discovered there is a kernel argument that's supposed to prevent the biosdevname utility from being invoked — it's "biosdevname=0". The bad news however, is this kernel argument only works during installation; it has no effect afterwards.

It turns out the NIC naming activity is under the control of udev, and therefore can be modified by editing the udev rules scripts located in the /etc/udev/rules.d directory. However several attempts to change this has led to a failing network configuration and no ethernet port being recognized.

I have tried CentOS and using your python script along with Ubuntu and build CloudStack manually. Both had issues with the eth0/em1 refactoring.

In your code, you have:

[code]# Get the ip for eth0. This is only work if there is an eth0 device. eth = 'eth0' eth_ip = commands.getoutput("ip address show dev " + eth).split() eth_ip = eth_ip[eth_ip.index('inet') + 1].split('/')[0] [/code]

In the case where it uses em1, how will this be handled? Thank you any help and thoughts.

-wf

thehyperadvisor commented 9 years ago

William I have done no testing with CentOS7. As you have seen there have been major changes to CentOS7 so it will take some work and time that I have not had recently. Hopefully I can get started working on that soon.

Antone Heyward @thehyperadvisor http://thehyperadvisor.com

On Nov 20, 2014, at 3:37 PM, William Fleming notifications@github.com wrote:

I also noted an issue where eth0 is actually named em1. Any thoughts on error handling or manipulating the code to support what seems to be a problem with how NICs are named.

Installing more current version of Linux means seeing your NIC's name change from "eth0" to "em1" if the NIC is embedded in the motherboard, or "p12p1" (or something similar) if your NIC is attached to the PCI bus.

I did some online research and discovered there is a kernel argument that's supposed to prevent the biosdevname utility from being invoked — it's "biosdevname=0". The bad news however, is this kernel argument only works during installation; it has no effect afterwards.

It turns out the NIC naming activity is under the control of udev, and therefore can be modified by editing the udev rules scripts located in the /etc/udev/rules.d directory. However several attempts to change this has led to a failing network configuration and no ethernet port being recognized.

I have tried CentOS and using your python script along with Ubuntu and build CloudStack manually. Both had issues with the eth0/em1 refactoring.

In your code, you have:

Get the ip for eth0. This is only work if there is an eth0 device.

eth = 'eth0' eth_ip = commands.getoutput("ip address show dev " + eth).split() eth_ip = eth_ip[eth_ip.index('inet') + 1].split('/')[0]

In the case where it uses em1, how will this be handled? Thank you any help and thoughts.

-wf

— Reply to this email directly or view it on GitHub https://github.com/thehyperadvisor/cldstk-deploy/issues/3#issuecomment-63875266.

cloudtrends commented 9 years ago

This depend on CloudStack support CentOS 7 , not the cldstk-deploy .

Anyway , Great job .

thehyperadvisor commented 9 years ago

CentOS 7 is not supported at this time.

mzatko commented 8 years ago

any further plans with centos7 support?

thehyperadvisor commented 8 years ago

Sorry but no plans to support centos 7.

On Jul 3, 2016, at 3:20 PM, Miroslav Zaťko notifications@github.com wrote:

any further plans with centos7 support?

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub, or mute the thread.