Polishing of the readme and synchronizing structure
Updates to the README to provide additional context and sync up with the file layout. Moved the setup folder to the install folder as the folder is specificially utilized to install.
This commit is contained in:
parent
e6cbfc0098
commit
d93a3218af
63
README.rst
63
README.rst
@ -1,7 +1,7 @@
|
|||||||
Bifrost
|
Bifrost
|
||||||
=======
|
=======
|
||||||
|
|
||||||
Bifrost is a set of ansible playbooks that automates the task of deploying a
|
Bifrost is a set of Ansible playbooks that automates the task of deploying a
|
||||||
base image onto a set of known hardware using Ironic. It provides modular
|
base image onto a set of known hardware using Ironic. It provides modular
|
||||||
utility for one-off operating system deployment with as few operational requirements
|
utility for one-off operating system deployment with as few operational requirements
|
||||||
as reasonably possible.
|
as reasonably possible.
|
||||||
@ -12,9 +12,9 @@ This is split into roughly three steps:
|
|||||||
prepare the local environment by downloading and/or building machine images,
|
prepare the local environment by downloading and/or building machine images,
|
||||||
and installing and configuring the necessary services.
|
and installing and configuring the necessary services.
|
||||||
- enroll:
|
- enroll:
|
||||||
take as input a hardware inventory file and enroll the listed hardware with
|
take as input a customizable hardware inventory file and enroll the
|
||||||
Ironic, configuring each appropriately for deployment with the
|
listed hardware with Ironic, configuring each appropriately for deployment
|
||||||
previously-downloaded images.
|
with the previously-downloaded images.
|
||||||
- deploy:
|
- deploy:
|
||||||
instruct Ironic to deploy the operating system onto each machine.
|
instruct Ironic to deploy the operating system onto each machine.
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ Edit ./inventory/group_vars/all.yaml to match your environment.
|
|||||||
|
|
||||||
Then run::
|
Then run::
|
||||||
|
|
||||||
cd setup
|
cd install
|
||||||
bash ./env-setup.sh
|
bash ./env-setup.sh
|
||||||
source /opt/stack/ansible/hacking/env-setup
|
source /opt/stack/ansible/hacking/env-setup
|
||||||
cd ..
|
cd ..
|
||||||
@ -74,7 +74,7 @@ environment variables:
|
|||||||
- IRONIC_URL - A URL to the Ironic API, such as http://localhost:6385/
|
- IRONIC_URL - A URL to the Ironic API, such as http://localhost:6385/
|
||||||
- OS_AUTH_TOKEN - Any value, such as an empty space, is required to cause the client library to send requests directly to the API.
|
- OS_AUTH_TOKEN - Any value, such as an empty space, is required to cause the client library to send requests directly to the API.
|
||||||
|
|
||||||
For your ease of use, setup/env-vars can be sourced to allow the CLI to connect
|
For your ease of use, install/env-vars can be sourced to allow the CLI to connect
|
||||||
to a local Ironic installation operating in noauth mode.
|
to a local Ironic installation operating in noauth mode.
|
||||||
|
|
||||||
|
|
||||||
@ -83,9 +83,9 @@ Hardware Enrollment
|
|||||||
|
|
||||||
The following requirements are installed during the Install step above:
|
The following requirements are installed during the Install step above:
|
||||||
|
|
||||||
- openstack-infra/shade library -> https://review.openstack.org/159609
|
- openstack-infra/shade library
|
||||||
- openstack-infra/os-client-config -> https://review.openstack.org/159563
|
- openstack-infra/os-client-config
|
||||||
- os_baremetal ansible module under development -> https://github.com/juliakreger/ansible-modules-extras/blob/features/new-openstack/cloud/os_baremetal.py
|
- The os_ironic and os_ironic_node Ansible modules under development -> https://github.com/juliakreger/ansible-modules-extras/blob/features/new-openstack/cloud/
|
||||||
|
|
||||||
You will also need a CSV file containing information about the hardware you are enrolling.
|
You will also need a CSV file containing information about the hardware you are enrolling.
|
||||||
|
|
||||||
@ -94,27 +94,32 @@ CSV File Format
|
|||||||
|
|
||||||
The CSV file has the following columns:
|
The CSV file has the following columns:
|
||||||
|
|
||||||
1. MAC Address
|
0. MAC Address
|
||||||
2. Management username
|
1. Management username
|
||||||
3. Management password
|
2. Management password
|
||||||
4. Management Address
|
3. Management Address
|
||||||
5. CPU Count
|
4. CPU Count
|
||||||
6. Memory size in MB
|
5. Memory size in MB
|
||||||
7. Disk Storage in GB
|
6. Disk Storage in GB
|
||||||
8. Flavor (Not Used)
|
7. Flavor (Not Used)
|
||||||
9. Type (Not Used)
|
8. Type (Not Used)
|
||||||
10. Host UUID
|
9. Host UUID
|
||||||
11. Host or Node name
|
10. Host or Node name
|
||||||
12. Host IP Address to be set
|
11. Host IP Address to be set
|
||||||
13. ipmi_target_channel - Requires: ipmi_bridging set to single
|
12. ipmi_target_channel - Requires: ipmi_bridging set to single
|
||||||
14. ipmi_target_address - Requires: ipmi_bridging set to single
|
13. ipmi_target_address - Requires: ipmi_bridging set to single
|
||||||
15. ipmi_transit_channel - Requires: ipmi_bridging set to dual
|
14. ipmi_transit_channel - Requires: ipmi_bridging set to dual
|
||||||
16. ipmi_transit_address - Requires: ipmi_bridging set to dual
|
15. ipmi_transit_address - Requires: ipmi_bridging set to dual
|
||||||
|
|
||||||
Example definition::
|
Example definition::
|
||||||
|
|
||||||
00:11:22:33:44:55,root,undefined,192.168.122.1,1,8192,512,NA,NA,aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee,hostname_100,192.168.2.100,,,,
|
00:11:22:33:44:55,root,undefined,192.168.122.1,1,8192,512,NA,NA,aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee,hostname_100,192.168.2.100,,,,
|
||||||
|
|
||||||
|
This file format is fairly flexible and can be easilly modified
|
||||||
|
although the enrollment and deployment playbooks utilize the model
|
||||||
|
of a host per line model in order to process through the entire
|
||||||
|
list, as well as reference the specific field items.
|
||||||
|
|
||||||
How this works?
|
How this works?
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
@ -126,10 +131,13 @@ Example::
|
|||||||
|
|
||||||
ansible-playbook -i inventory/localhost -vvvv enroll/enroll.yaml -e baremetal_csv_file=inventory/baremetal.csv
|
ansible-playbook -i inventory/localhost -vvvv enroll/enroll.yaml -e baremetal_csv_file=inventory/baremetal.csv
|
||||||
|
|
||||||
Note that enrollment is a one-time operation. This module *does not*
|
Note that enrollment is a one-time operation. The Ansible module *does not*
|
||||||
synchronize data for existing nodes. You should use the Ironic CLI to do this
|
synchronize data for existing nodes. You should use the Ironic CLI to do this
|
||||||
manually at the moment.
|
manually at the moment.
|
||||||
|
|
||||||
|
Additionally, it is important to note that the playbooks for enrollment are
|
||||||
|
split into three separate playbooks based up the setting of ipmi_bridging.
|
||||||
|
|
||||||
Hardware Deployment
|
Hardware Deployment
|
||||||
===================
|
===================
|
||||||
|
|
||||||
@ -142,9 +150,8 @@ How this works?
|
|||||||
|
|
||||||
The deploy.yaml playbook is intended to create configdrives for servers, and
|
The deploy.yaml playbook is intended to create configdrives for servers, and
|
||||||
initiate the node deployments through Ironic. IPs are injected into the config
|
initiate the node deployments through Ironic. IPs are injected into the config
|
||||||
drive and statically assigned.
|
drive and are statically assigned.
|
||||||
|
|
||||||
Example::
|
Example::
|
||||||
|
|
||||||
ansible-playbook -i inventory/localhost -vvvv deploy/deploy.yaml -e baremetal_csv_file=inventory/baremetal.csv
|
ansible-playbook -i inventory/localhost -vvvv deploy/deploy.yaml -e baremetal_csv_file=inventory/baremetal.csv
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user