This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
copper:academy:foreman [2015/09/29 23:16] Bryan Sullivan created |
copper:academy:foreman [2016/02/02 18:39] (current) Bryan Sullivan |
||
---|---|---|---|
Line 1: | Line 1: | ||
The procedure below has been used to create a 3-node OPNFV install using Intel NUC i7 nodes with 16GB RAM, 250MB SSD, and 1 TB HDD. The install uses one NUC for the Jumphost, and one each for the controller (OpenStack + ODL) and the compute nodes. | The procedure below has been used to create a 3-node OPNFV install using Intel NUC i7 nodes with 16GB RAM, 250MB SSD, and 1 TB HDD. The install uses one NUC for the Jumphost, and one each for the controller (OpenStack + ODL) and the compute nodes. | ||
+ | |||
+ | ==== Jumphost Installation and OPNFV Deployment ==== | ||
* Includes instructions from http://artifacts.opnfv.org/genesis/foreman/docs/installation-instructions.html | * Includes instructions from http://artifacts.opnfv.org/genesis/foreman/docs/installation-instructions.html | ||
Line 48: | Line 50: | ||
TYPE="Ethernet" | TYPE="Ethernet" | ||
BOOTPROTO="static" | BOOTPROTO="static" | ||
- | IPADDR=192.168.10.2 | + | IPADDR=192.168.1.201 |
NETMASK=255.255.255.0 | NETMASK=255.255.255.0 | ||
- | GATEWAY=192.168.10.1 | + | GATEWAY=192.168.1.1 |
NM_CONTROLLED="no" | NM_CONTROLLED="no" | ||
(rest as-is) | (rest as-is) | ||
Line 64: | Line 66: | ||
<code> | <code> | ||
sudo vi /etc/resolv.conf | sudo vi /etc/resolv.conf | ||
- | 8.8.8.8 | + | nameserver 8.8.8.8 |
+ | nameserver 8.8.4.4 | ||
</code> | </code> | ||
Line 91: | Line 94: | ||
* In BIOS options (F2), Power tab, set "Wake on LAN from S4/S5" to "Power On - PXE Boot" and save (F10) | * In BIOS options (F2), Power tab, set "Wake on LAN from S4/S5" to "Power On - PXE Boot" and save (F10) | ||
* Boot NUCs and note MAC addresses, so they can be included in the wakenodes.sh script referenced below | * Boot NUCs and note MAC addresses, so they can be included in the wakenodes.sh script referenced below | ||
- | * The "1"and "2" below refer to the 3-node installs ("PODS") which must be in independent networks (e.g. behind distinct internet gateway routers) so they don't conflict. Within each POD the node names and assigned IP addresses etc are the same. | ||
- | * NUC1 JUMPHOST1 B8:AE:ED:76:FC:WB | ||
- | * NUC2 OSCONTROLLER1 B8:AE:ED:76:FB:45 | ||
- | * NUC3 OSCOMPUTE1 B8:AE:ED:76:FB:C4 | ||
- | * NUC4 JUMPHOST2 B8:AE:ED:76:A4:E9 | ||
- | * NUC5 OSCONTROLLER2 B8:AE:ED:76:F9:FF | ||
- | * NUC6 OSCOMPUTE2 B8:AE:ED:76:C5:ED | ||
- | |||
* install ether-wake if needed to test of wakenodes.sh | * install ether-wake if needed to test of wakenodes.sh | ||
<code> | <code> | ||
Line 137: | Line 132: | ||
hostname: oscompute1.{{ domain_name }} | hostname: oscompute1.{{ domain_name }} | ||
short_name: oscompute1 | short_name: oscompute1 | ||
- | mac_address: "B8:AE:ED:76:FB:C4" | + | mac_address: "<compute1-mac>" |
# (for controller1:) | # (for controller1:) | ||
name: oscontroller1.{{ domain_name }} | name: oscontroller1.{{ domain_name }} | ||
hostname: oscontroller1.{{ domain_name }} | hostname: oscontroller1.{{ domain_name }} | ||
short_name: oscontroller1 | short_name: oscontroller1 | ||
- | mac_address: "B8:AE:ED:76:FB:45" | + | mac_address: "<controller1-mac>" |
- | private_mac: "B8:AE:ED:76:FB:45" | + | private_mac: "<controller1-mac>" |
# Jumphost2: | # Jumphost2: | ||
# (for compute1:) | # (for compute1:) | ||
Line 149: | Line 144: | ||
hostname: oscompute1.{{ domain_name }} | hostname: oscompute1.{{ domain_name }} | ||
short_name: oscompute1 | short_name: oscompute1 | ||
- | mac_address: "B8:AE:ED:76:C5:ED" | + | mac_address: "<compute1-mac>" |
# (for controller1:) | # (for controller1:) | ||
name: oscontroller1.{{ domain_name }} | name: oscontroller1.{{ domain_name }} | ||
hostname: oscontroller1.{{ domain_name }} | hostname: oscontroller1.{{ domain_name }} | ||
short_name: oscontroller1 | short_name: oscontroller1 | ||
- | mac_address: "B8:AE:ED:76:F9:FF" | + | mac_address: "<controller1-mac>" |
- | private_mac: "B8:AE:ED:76:F9:FF" | + | private_mac: "<controller1-mac>" |
</code> | </code> | ||
Line 172: | Line 167: | ||
# !/bin/bash | # !/bin/bash | ||
yum -y install net-tools | yum -y install net-tools | ||
- | ether-wake B8:AE:ED:76:FB:C4 | + | ether-wake <compute1-mac> |
- | ether-wake B8:AE:ED:76:FB:45 | + | ether-wake <controller1-mac> |
- | ether-wake B8:AE:ED:76:F9:FF | + | |
- | ether-wake B8:AE:ED:76:C5:ED | + | |
</code> | </code> | ||
Line 223: | Line 216: | ||
rm -rf /var/opt/opnfv | rm -rf /var/opt/opnfv | ||
exit | exit | ||
+ | rm /home/opnfv/.ssh/known_hosts | ||
</code> | </code> | ||
Line 241: | Line 235: | ||
* Create /etc/sysconfig/network-scripts/ifcfg-br-ex with https://github.com/trozet/puppet-trystack/blob/quickstack/templates/br_ex.erb as template. | * Create /etc/sysconfig/network-scripts/ifcfg-br-ex with https://github.com/trozet/puppet-trystack/blob/quickstack/templates/br_ex.erb as template. | ||
+ | * Note: the following assumes that Foreman assigned IP 192.168.1.204 to controller1. If different, use the IP assigned for the system you are installing, here and below. | ||
<code> | <code> | ||
vi /etc/sysconfig/network-scripts/ifcfg-br-ex | vi /etc/sysconfig/network-scripts/ifcfg-br-ex | ||
Line 285: | Line 280: | ||
ONBOOT=yes | ONBOOT=yes | ||
NETBOOT=yes | NETBOOT=yes | ||
- | UUID="07d0c861-93c1-4cbb-a1a3-43086f1f8144" | + | (leave UUID line as is, replace rest with the below) |
BOOTPROTO=static | BOOTPROTO=static | ||
TYPE=OVSPort | TYPE=OVSPort | ||
Line 293: | Line 288: | ||
PEERDNS=no | PEERDNS=no | ||
PEERROUTES=yes | PEERROUTES=yes | ||
- | ONBOOT=yes | ||
</code> | </code> | ||
Line 301: | Line 295: | ||
</code> | </code> | ||
- | * From Horizon / Project / Compute / Access & Security / API Access select "Download OpenStack RC file, and create the file in the root home directory, then execute it. | + | * On the jumphost, from Horizon / Project / Compute / Access & Security / API Access select "Download OpenStack RC file, transfer to the controller root home directory, then execute it. |
<code> | <code> | ||
vi admin-openrc.sh | vi admin-openrc.sh | ||
Line 350: | Line 344: | ||
===== What install success looks like ===== | ===== What install success looks like ===== | ||
- | * when the process has finished, succcess is indicated by this type of information in the jumphost terminal | + | * when the process has finished, succcess is indicated by this type of information in the jumphost terminal (the details e.g. addresses shown here may vary from that above... sometimes installs resulted in different assigned addresses) |
<code> | <code> | ||
- | ==> default: TASK: [get_nodes/foreman | wait_for host={{ item.value.hostname }} port=22 | ||
- | delay=10 timeout=1800] *** | ||
- | ==> default: [[ previous task time: 0:00:03.456516 = 3.46s / 746.15s ]] | ||
- | ==> default: ok: [localhost -> 127.0.0.1] => (item={'key': 'controller1', 'value': | ||
- | {'bmc_user': 'root', 'short_name': 'oscontroller1', 'memory': 4096, 'cpus': 2, | ||
- | 'ansible_ssh_pass': 'Op3nStack', 'bmc_ip': '10.4.17.3', 'hostgroup': | ||
- | 'Controller_Network_ODL', 'groups': ['controller', 'foreman_nodes', 'puppet', 'rdo', | ||
- | 'neutron'], 'disk': 40, 'bmc_mac': '10:23:45:67:88:AC', 'admin_ip': '192.168.1.206', | ||
- | 'name': u'oscontroller1.opnfv.com', 'hostname': u'oscontroller1.opnfv.com', 'host_type': | ||
- | 'baremetal', 'private_mac': 'B8:AE:ED:76:F9:FF', 'bmc_pass': 'root', 'admin_password': | ||
- | 'octopus', 'mac_address': 'B8:AE:ED:76:F9:FF', 'type': 'controller', 'private_ip': | ||
- | '192.168.1.206'}}) | ||
- | ==> default: ok: [localhost -> 127.0.0.1] => (item={'key': 'compute', 'value': | ||
- | {'bmc_user': 'root', 'short_name': 'oscompute1', 'memory': 2048, 'cpus': 2, | ||
- | 'ansible_ssh_pass': 'Op3nStack', 'bmc_ip': '10.4.17.2', 'groups': ['compute', | ||
- | 'foreman_nodes', 'puppet', 'rdo', 'neutron'], 'disk': 40, 'bmc_mac': '10:23:45:67: | ||
- | ==> default: 88:AB', 'admin_ip': '192.168.1.207', 'name': u'oscompute1.opnfv.com', | ||
- | 'hostname': u'oscompute1.opnfv.com', 'host_type': 'baremetal', 'hostgroup': 'Compute', | ||
- | 'bmc_pass': 'root', 'admin_password': '', 'mac_address': 'B8:AE:ED:76:C5:ED', 'type': | ||
- | 'compute'}}) | ||
- | ==> default: | ||
- | ==> default: TASK: [get_nodes/foreman | set fact with hostnames] *************************** | ||
- | ==> default: [[ previous task time: 0:14:11.636023 = 851.64s / 1597.79s ]] | ||
- | ==> default: ok: [localhost] => (item={'key': 'controller1', 'value': {'bmc_user': 'root', | ||
- | 'short_name': 'oscontroller1', 'memory': 4096, 'cpus': 2, 'ansible_ssh_pass': 'Op3nStack', | ||
- | 'bmc_ip': '10.4.17.3', 'hostgroup': 'Controller_Network_ODL', 'groups': ['controller', | ||
- | 'foreman_nodes', 'puppet', 'rdo', 'neutron'], 'disk': 40, 'bmc_mac': '10:23:45:67:88:AC', | ||
- | 'admin_ip': '192.168.1.206', 'name': u'oscontroller1.opnfv.com', 'hostname': | ||
- | u'oscontroller1.opnfv.com', 'host_type': 'baremetal', 'private_mac': 'B8:AE:ED:76:F9:FF', | ||
- | 'bmc_pass': 'root', 'admin_password': 'octopus', 'mac_address': 'B8:AE:ED:76:F9:FF', | ||
- | 'type': 'controller', 'private_ip': '192.168.1.206'}}) | ||
- | ==> default: ok: [localhost] => (item={'key': 'compute', 'value': {'bmc_user': 'root', | ||
- | 'short_name': 'oscompute1', 'memory': 2048, 'cpus': 2, 'ansible_ssh_pass': 'Op3nStack', | ||
- | 'bmc_ip': '10.4.17.2', 'groups': ['compute', 'foreman_nodes', 'puppet', 'rdo', 'neutron'], | ||
- | 'disk': 40, 'bmc_mac': '10:23:45:67:88:AB', 'admin_ip': '192.168.1.207', 'name': | ||
- | u'oscompute1.opnfv.com', 'hostname': u'oscompute1.opnfv.com', 'host_type': 'baremetal', | ||
- | 'hostgroup': 'Compute', 'bmc_pass': 'root', 'admin_password': '', 'mac_address': | ||
- | 'B8:AE:ED:76:C5:ED', 'type': 'compute'}}) | ||
==> default: | ==> default: | ||
==> default: TASK: [get_nodes/foreman | make a list] *************************************** | ==> default: TASK: [get_nodes/foreman | make a list] *************************************** |