Bug 1173018
Summary: | RFE : virt-who in offline mode | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 6 | Reporter: | Christophe Augello <caugello> |
Component: | virt-who | Assignee: | Radek Novacek <rnovacek> |
Status: | CLOSED ERRATA | QA Contact: | xingge <gxing> |
Severity: | high | Docs Contact: | Laura Novich <lnovich> |
Priority: | unspecified | ||
Version: | 6.6 | CC: | jherrman, jhradile, ktordeur, ldai, ovasik, rbalakri, rnovacek, shihliu, tlavigne, wlehman |
Target Milestone: | rc | Keywords: | FutureFeature |
Target Release: | --- | ||
Hardware: | All | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | virt-who-0.12-1.el6 | Doc Type: | Release Note |
Doc Text: |
virt-who supports offline mode
The virt-who service can now report the association between host physical machines and guest virtual machines when the hypervisor is offline, and thus no longer requires connection to the hypervisor to perform this operation. When the virt-who service cannot connect to the hypervisor, due to security policies, for example, users can now obtain information about the host-guest mapping file by using the "virt-who --print" command, which displays the information saved in the mapping file, and sends it to the Subscription Manager.
|
Story Points: | --- |
Clone Of: | Environment: | ||
Last Closed: | 2015-07-22 07:15:42 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Comment 1
Radek Novacek
2015-02-26 14:47:25 UTC
Fixed by rebase to virt-who-0.12-1.el6. CCS has determined that this bug should be described in the RHEL 6.7 Release Notes. Please update the Doc Text field with a summary feature description. Failed to verify it on virt-who-0.12-2.el6.noarch as virt-who can't send host/gust mapping to SAM server when vcenter forbidden virt-who machine access to it. Precondition: Make sure virt-who's system can't access to vcenter directly. Checked process: 1. Register system to SAM 2. Run virt-who at esx mode in command line and also use new option "-p" [root@hp-z220-06 ~]# virt-who --esx --esx-owner=ACME_Corporation --esx-env=Library --esx-server=10.66.79.68 --esx-username=Administrator --esx-password=qwer1234P! -d -p [root@hp-z220-06 ~]# virt-who --esx --esx-owner=ACME_Corporation --esx-env=Library --esx-server=10.66.79.68 --esx-username=Administrator --esx-password=qwer1234P! -p -d 2015-04-09 16:27:07,410 INFO: Using configuration "env/cmdline" ("esx" mode) 2015-04-09 16:27:07,520 DEBUG: Log into ESX 2015-04-09 16:28:10,610 ERROR: Virt backend 'env/cmdline' fails with exception: Traceback (most recent call last): File "/usr/share/virt-who/virt/virt.py", line 208, in run self._run() File "/usr/share/virt-who/virt/esx/esx.py", line 52, in _run self.login() File "/usr/share/virt-who/virt/esx/esx.py", line 187, in login self.sc = self.client.service.RetrieveServiceContent(_this=self.moRef) File "/usr/lib/python2.6/site-packages/suds/client.py", line 542, in __call__ return client.invoke(args, kwargs) File "/usr/lib/python2.6/site-packages/suds/client.py", line 602, in invoke result = self.send(soapenv) File "/usr/lib/python2.6/site-packages/suds/client.py", line 643, in send reply = transport.send(request) File "/usr/lib/python2.6/site-packages/suds/transport/https.py", line 64, in send return HttpTransport.send(self, request) File "/usr/lib/python2.6/site-packages/suds/transport/http.py", line 77, in send fp = self.u2open(u2request) File "/usr/lib/python2.6/site-packages/suds/transport/http.py", line 118, in u2open return url.open(u2request, timeout=tm) File "/usr/lib64/python2.6/urllib2.py", line 391, in open response = self._open(req, data) File "/usr/lib64/python2.6/urllib2.py", line 409, in _open '_open', req) File "/usr/lib64/python2.6/urllib2.py", line 369, in _call_chain result = func(*args) File "/usr/lib64/python2.6/urllib2.py", line 1198, in https_open return self.do_open(httplib.HTTPSConnection, req) File "/usr/lib64/python2.6/urllib2.py", line 1165, in do_open raise URLError(err) URLError: <urlopen error [Errno 110] Connection timed out> {"hypervisors": []} Result: It show some error messages and a null host/guest mapping in the log, it should have three esx hosts in this vcenter. Therefore, reopen it. The host/guest mapping needs to be obtained with access to the vCenter first. Then write the result (of 'virt-who -p') to some file and create fake hypervisor pointing to this file (according to virt-who-config man page). Then it no longer needs to be connected to vCenter and should work normally. Verified it on virt-who-0.12-2.el6.noarch as virt-who can send host/guest mapping to SAM server when it can't access to vcenter directly. Verified version: virt-who-0.12-2.el6.noarch subscription-manager-1.14.1-1.el6.x86_64 python-rhsm-1.14.1-1.el6.x86_64 candlepin-0.9.6.5-1.el6sam.noarch katello-headpin-1.4.3.28-1.el6sam_splice.noarch Verified process: 1. Make sure system with virt-who can connect to vcenter, register system and run virt-who with "-p" [root@hp-z220-06 virt-who.d]# virt-who --esx --esx-owner=ACME_Corporation --esx-env=Library --esx-server=10.66.79.68 --esx-username=Administrator --esx-password=qwer1234P! -p -d > /root/aaa 2. Make sure this system can't connect to vcenter directly.Configure virt-who as the following: [root@hp-z220-06 virt-who.d]# cat /etc/virt-who.d/virt [fake-virt] type=fake file=/root/aaa is_hypervisor=True owner=ACME_Corporation env=Library [root@hp-z220-06 virt-who.d]# cat /etc/sysconfig/virt-who VIRTWHO_BACKGROUND=1 VIRTWHO_DEBUG=1 VIRTWHO_INTERVAL=10 3. Restart virt-who service [root@hp-z220-06 virt-who.d]# service virt-who restart 4. Check the virt-who log. 2015-04-09 16:59:07,997 [DEBUG] @virtwho.py:84 - Using config named 'fake-virt' 2015-04-09 16:59:07,997 [INFO] @virtwho.py:475 - Using configuration "fake-virt" ("fake" mode) 2015-04-09 16:59:07,997 [DEBUG] @virtwho.py:131 - Starting infinite loop with 10 seconds interval 2015-04-09 16:59:08,150 [INFO] @subscriptionmanager.py:124 - Sending update in hosts-to-guests mapping: {u'564d20f4-71b7-acdb-f875-d64ecec4a6c0': [u'4226082e-2746-17dc-6f01-dc91c6fc7fbb', u'4224d6d4-b9ef-cd33-8f19-56bcfc179ed5'], u'86b2bd00-8bad-11e2-87f4-6c3be514699d': [u'4224a77f-1c50-42cb-3507-2b68b447ed60', u'4224e5d2-4fcf-2bc2-2559-5846035d3a78']} 2015-04-09 16:59:08,151 [DEBUG] @subscriptionmanager.py:76 - Authenticating with certificate: /etc/pki/consumer/cert.pem 2015-04-09 16:59:09,065 [INFO] @virtwho.py:127 - Created host: cd07723f-7032-4a60-9eb4-0c05dc0c2251 with guests: [4226082e-2746-17dc-6f01-dc91c6fc7fbb, 4224d6d4-b9ef-cd33-8f19-56bcfc179ed5] 2015-04-09 16:59:09,065 [INFO] @virtwho.py:127 - Created host: 1e864c41-0e41-4370-a8f1-8d18fa0ffd49 with guests: [4224a77f-1c50-42cb-3507-2b68b447ed60, 4224e5d2-4fcf-2bc2-2559-5846035d3a78] Result:virt-who has send the host/guest mapping to SAM, host/guest mapping can show on the SAM web UI. Therefore, verify it. The format is just quite simple JSON: { "hypervisors": [ { "uuid": "<unique-identification-of-the-host-1>", "guests": [ "<guest-1-uuid>", "<guest-2-uuid>", "<guest-3-uuid>", ... ] }, { "uuid": "<unique-identification-of-the-host-2>", "guests": [ "<guest-4-uuid>", "<guest-5-uuid>", "<guest-6-uuid>", ... ] }, ... ] } But getting this info from ESX is quite tricky as this information can't be obtained from vSphere Web Client. It is possible to use MOB: 1) Go to MOB service content: https://<esx-or-vcenter-server>/mob/?moid=ServiceInstance&doPath=content 2) Note value in the 3rd column on line "rootFolder" 3) Then go to https://<esx-or-vcenter-server>/mob/?moid=ha-property-collector&method=retrievePropertiesEx 4) Paste content of following file into the first box and change the comment starting with "<!-- TODO" to value from step 3 5) Increase the 0 in the second box to something high (like 1000) 6) Press "Invoke method" 7) You should see table with hosts and guests and their uuids bellow 8) Use uuid to build JSON as shown above Sorry, I forgot to paste the link to that file (step 4): https://rnovacek.fedorapeople.org/esx-enumerate.xml Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2015-1377.html |