roshan@blog:~$
DevOps ChefCloud ComputingDevopsVMWare vCloud

Automation for VMware vCloud Director using Chef's knife-vcloud - Part-II

 ·  Roshan Nagekar  ·  5 min read

Version 1.2.0

![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilJM6MbbXgJoOGZh4GqkhIUm3Kv_KVJAudoHMIrCLgoCuHrSp6DX0KdsIYXcb0RkQDk9wZOtXLLm7enl6fSUH1HkyauiK89qYzx7-pH97C6_5Mb2zeFMK15bshHtEZxu2PRapQgq6sd0k/s1600/3648629316_d1ca29f4aa_m.jpg)

Some right reserved by [Phil Wiffen](https://www.flickr.com/photos/mindcircus/)

For some reason with the [previous repo](http://roshannagekar.blogspot.in/2014/03/automation-for-vmware-vcloud-director.html) I could not see the list of
all vApps. Only some of it (a mixture of both chef node and non chef
nodes) were seen. So I went ahead with another version of knife-vcloud plugin
available which solved my problem to a large extent.

Plugin is available at https://github.com/astratto/knife-vcloud

*Configuration used:*

- CentOS 6.5
- Chef 11.8.2
- knife-vcloud 1.2.0

*Following steps were used to complete the automation process:*

*Installation is fairly simple*

gem install knife-vcloud
gem list | grep vcloud
- See if after entering the above command you
see the gem knife-cloud. If yes the setup was successful. If no
something went wrong.

cd ~./chef
vim knife.rb

*Configuration is almost automated:*

knife vc configure

You will be prompted for
vcloud_url, login and password. After entering the details check that
the details you entered are reflected in the knife.rb file.

knife[:vcloud_url] = 'https://vcloud.server.org'
knife[:vcloud_org_login] = 'vcloud_organization'
knife[:vcloud_user_login] = 'vcloud_user'
knife[:vcloud_password] =

Note:
The organization was not updated for me, and it kept giving
authorization failure for quite sometime. If you see that the
organization is not updated automatically, please update it manually in
the knife.rb file.

The subsequent commands
would also change for the detailed listing. Although the documentation
at many instances says that the name of VM or vApp should suffice to
pull up the required details, note that at many instances you will be
required to enter the ID and not just the name.

*To see the list of catalog items*

[root@chefworkstation ~]# knife vc catalog show All_ISOs

Description: All ISO Dumps
Name                                           ID                                          
CentOS-6.3                                          WhAtEvEr-Id-tO-bE-SeEn1       
CentOS-6.4_x64                                   WhAtEvEr-Id-tO-bE-SeEn2        
Ubuntu-copy                                           WhAtEvEr-Id-tO-bE-SeEn3        

*To see details of the organization*

[root@chefworkstation ~]# knife vc org show MYORG

CATALOGS                                                                 
Name                                  ID                                 
All_ISOs                                  WhAtEvEr-Id-tO-bE-SeEn4
Master Catalog                        WhAtEvEr-Id-tO-bE-SeEn5
                                                                         
VDCs                                                                     
Name                                  ID                                 
MyorgVDC-Tier1     WhAtEvEr-Id-tO-bE-SeEn6
MyorgVDC-Tier2        WhAtEvEr-Id-tO-bE-SeEn7
MyorgVDC-Tier3        WhAtEvEr-Id-tO-bE-SeEn8

NETWORKS                                                                 
Name                                  ID                                 
MyorgNet-Router                   WhAtEvEr-Id-tO-bE-SeEn9

TASKLISTS                                                                
Name                                  ID                                 
                        WhAtEvEr-Id-tO-bE-SeEn10

*To create a new vApp:*

[root@chefworkstation ~]# knife vc vapp create MyorgVDC-Tier1 chefnode2 "Just Created node2" WhAtEvEr-Id-tO-bE-SeEn

vApp creation...
Summary: Status: error - time elapsed: 52.012 seconds
WARNING:
ATTENTION: Error code 400 - The following IP/MAC addresses have already
been used by running virtual machines: MAC addresses: 10:20:30:40:50:0f
IP addresses: 192.168.0.20 Use the Fence vApp option to use same
MAC/IP. Fencing allows identical virtual machines in different vApps to
be powered on without conflict, by isolating the MAC and IP addresses of
the virtual machines.

vApp created with ID: WhAtEvEr-Id-tO-bE-SeEn

Note: that there are certain problems that were corrected later.

To show the deatils of created vApp:

[root@chefworkstation ~]# knife vc vapp show WhAtEvEr-Id-tO-bE-SeEn1

Note: --vdc not specified, assuming VAPP is an ID
Name: chefnode2
Description: Just Created node2
Status: stopped
IP: 192.168.0.12

Networks MyorgNet-Router    Gateway      Netmask        Fence Mode  Parent Network       Retain Network

      192.168.0.1  255.255.255.0  bridged     MyorgNet-Router  false        

      VMs       Name    Status   IPs           ID                                    Scoped ID                          

      centos  stopped  192.168.0.12  WhAtEvEr-Id-tO-bE-SeEn  WhAtEvEr-Id-tO-bE-SeEn

To show the vm specific details:

[root@chefworkstation ~]# knife vc vm show WhAtEvEr-Id-tO-bE-SeEn --vapp MyvApp_Chef

Note: --vapp and --vdc not specified, assuming VM is an ID

VM Name: centos

OS Name: CentOS 4/5/6 (64-bit) Status: stopped Cpu                                           Number of Virtual CPUs  1 virtual CPU(s)     

Memory                                        Memory Size             2048 MB of memory    

Disks                                         Hard disk 1             16384 MB              Hard disk 2             16384 MB             

Networks                                      MyorgNet-Router                           Index                 0                     Ip                    192.168.0.12          External ip                                 Is connected          true                  Mac address           10:20:30:40:50:0f     Ip allocation mode    MANUAL               

Guest Customizations                          Enabled                 false                 Admin passwd enabled    true                  Admin passwd auto       false                 Admin passwd                                  Reset passwd required   false                

Computer name           centos

To set new info to the vm:

[root@chefworkstation ~]# knife vc vm set info --name ChefNewNode WhAtEvEr-Id-tO-bE-SeEn --vapp MyvApp_Chef centos

Note: --vapp and --vdc not specified, assuming VM is an ID

Renaming VM from centos to ChefNewNode

Summary: Status: success - time elapsed: 7.09 seconds

To update other info:

[root@chefworkstation ~]# knife vc vm set info --ram 512 WhAtEvEr-Id-tO-bE-SeEn --vapp MyvApp_Chef

Note: --vapp and --vdc not specified, assuming VM is an ID VM setting RAM info... Summary: Status: success - time elapsed: 9.843 seconds

To edit network info:

[root@chefworkstation
~]# knife vc vm network edit WhAtEvEr-Id-tO-bE-SeEn MyorgNet-Router

--net-ip 192.168.0.117 --ip-allocation-mode MANUAL

Note: --vapp and --vdc not specified, assuming VM is an ID Forcing parent network to itself VM network configuration... Guest customizations must be applied to a stopped VM, but it's running. Can I STOP it? (Y/N) Y Stopping VM... Summary: Status: success - time elapsed: 7.092 seconds VM network configuration for MyorgNet-Router... Summary: Status: success - time elapsed: 6.783 seconds Forcing Guest Customization to apply changes... Summary: Status: success - time elapsed: 22.639 seconds

To show the changes made:

[root@chefworkstation ~]# knife vc vm show WhAtEvEr-Id-tO-bE-SeEn

Note: --vapp and --vdc not specified, assuming VM is an ID VM Name: ChefNewNode OS Name: CentOS 4/5/6 (64-bit) Status: running

Cpu                                           Number of Virtual CPUs  1 virtual CPU(s)     

Memory                                        Memory Size             512 MB of memory     

Disks                                         Hard disk 1             16384 MB              Hard disk 2             16384 MB             

Networks                                      MyorgNet-Router                          

Index                 0                     Ip                    192.168.0.117         External ip                                 Is connected          true                  Mac address           10:20:30:40:50:0f     Ip allocation mode    MANUAL               

Guest Customizations                          Enabled                 true                  Admin passwd enabled    true                  Admin passwd auto       false                 Admin passwd                                  Reset passwd required   false                

Computer name           centos

Reference Links:

Related Posts

DevOps

Why Nagios Still Has My Heart (Even Though I Use Prometheus Now)

2026

DevOps

I built a pipeline to auto-post my Telegram channel everywhere. Then I stopped.

2026

DevOps

Getting Started with Docker Compose: A Practical Guide

2025