On 01/14/2016 01:28 PM, Bloemen, Jurriën wrote:
>
> On 14-01-16 12:16, Juan Hernández wrote:
>> On 01/14/2016 11:24 AM, Bloemen, Jurriën wrote:
>>> Hi,
>>>
>>> First I created a bonding interface:
>>>
>>> # add nic --parent-host-name server01 --name bond0 --network-name
>>> VLAN602 --bonding-slaves-host_nic host_nic.name=eno1
>>> --bonding-slaves-host_nic host_nic.name=eno2
>>>
>>> This works great but no IP is set on VLAN602.
>>>
>>> Then I'm trying to add an ip address to a network with the following
>>> command:
>>>
>>> # update hostnic --parent-host-name server01 --network-name VLAN602
>>> --boot_protocol static --ip-address 10.10.10.10 --ip-netmask 255.255.255.0
>>>
>>>
==============================================================================================================
>>> ERROR
>>>
============================================================================================================
>>>
>>> wrong number of arguments, try 'help update' for help.
>>>
================================================================================================================================================================================================================================
>>>
>>> Looking at this document
>>>
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Virtuali...
>>> I need to use "nic" instead of "hostnic" but then I
don't have the
>>> options to say this is a --parent-host-name. Only VM related command
>>> options.
>>>
>>> So I think the documentation is behind.
>>>
>>> Can somebody help me with what the command is to add a IP to a
>>> VLAN/Network for a host?
>>>
>>>
>> The command should be like this:
>>
>> # update nic bond0 --parent-host-name server01 --network-name VLAN602
>> --boot_protocol static --ip-address 10.10.10.10 --ip-netmask 255.255.255.0
>>
>> Note that the it is "nic" instead of "hostnic" and that you
need to
>> specify the name of that NIC, in this case "bond0".
>>
>> The command will work if you type it like that, but auto-completion
>> won't work. This is a bug in the CLI, indirectly caused by the fact that
>> the name of the URL segment used in the RESTAPI is "nics" (from
>> /hosts/{host:id}/*nics*) but the name of the XML schema complex type is
>> "HostNIC".
>>
> Thanks! That works!
>
> Another question:
>
> Now I got the message that my network is out-of-sync. How can i force
> within the ovirt-shell that it syncs the networks?
hmz.... pressed sent by accident
What I want to say is:
Now I got the message that my network is out-of-sync. How can i force
within the ovirt-shell that it syncs the networks?
Because when I press "Sync All Networks" the IP address disappears....
But when I check the box "Sync Network" within the VLAN602 options it
gets pushed to the host.
Is there a difference between the both? And how do I run both via
ovirt-shell?
The "sync network" operation is not supported by ovirt-shell.
If you want to set the network configuration, and make it persistent,
then you will need to use one of the "setupNetworks" operations. These
aren't fully usable with ovirt-shell either, so if you want to use it
you will need to use directly the API or one of the SDKs. For example,
lets assume that you have a host with network interfaces eth0, eth1, and
eth2, and that you want to configure eth1 and eth2 as a bond, to put
your VLAN and IP address on top. You can do that with a script like this:
---8<---
#!/bin/sh -ex
url="https://engine.example.com/ovirt-engine/api"
user="admin@internal"
password="..."
curl \
--verbose \
--cacert /etc/pki/ovirt-engine/ca.pem \
--user "${user}:${password}" \
--request POST \
--header "Content-Type: application/xml" \
--header "Accept: application/xml" \
--data '
<action>
<modified_network_attachments>
<network_attachment>
<network>
<name>VLAN602</name>
</network>
<host_nic>
<name>bond0</name>
</host_nic>
<ip_address_assignments>
<assignment_method>static</assignment_method>
<ip_address_assignment>
<ip netmask="255.255.255.0" address="10.10.10.10"/>
</ip_address_assignment>
</ip_address_assignments>
</network_attachment>
</modified_network_attachments>
<modified_bonds>
<host_nic>
<name>bond0</name>
<bonding>
<options>
<option name="mode" value="4"/>
<option name="miimon" value="100"/>
</options>
<slaves>
<host_nic>
<name>eth1</name>
</host_nic>
<host_nic>
<name>eth2</name>
</host_nic>
</slaves>
</bonding>
</host_nic>
</modified_bonds>
</action>
' \
"${url}/1ff7a191-2f3b-4eff-812b-9f91a30c3acc/setupnetworks"
--->8---
If you prefer to use one of the SDKs, the Python SDK for example, then
it should look like this:
---8<---
#!/usr/bin/python
from ovirtsdk.api import API
from ovirtsdk.xml import params
# Connect to the server:
api = API(
url="https://engine.example.com/ovirt-engine/api",
username="admin@internal",
password="...",
ca_file="/etc/pki/ovirt-engine/ca.pem",
debug=True
)
# Find the host:
host = api.hosts.get(name="myhost")
# Set up the networks:
host.setupnetworks(
params.Action(
modified_bonds=params.HostNics(
host_nic=[
params.HostNIC(
name="bond0",
bonding=params.Bonding(
options=params.Options(
option=[
params.Option(name="mode", value="4"),
params.Option(name="miimon", value="100"),
],
),
slaves=params.Slaves(
host_nic=[
params.HostNIC(name="eth1"),
params.HostNIC(name="eth2"),
],
),
),
),
],
),
modified_network_attachments=params.NetworkAttachments(
network_attachment=[
params.NetworkAttachment(
network=params.Network(name="VLAN602"),
host_nic=params.HostNIC(name="bond0"),
ip_address_assignments=params.IpAddressAssignments(
ip_address_assignment=[
params.IpAddressAssignment(
assignment_method="static",
ip=params.IP(
address="10.10.10.10",
netmask="255.255.255.0",
),
),
],
),
),
],
),
),
)
# Close the connection:
api.disconnect()
---8<---
--
Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta
3ºD, 28016 Madrid, Spain
Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L.