-
Notifications
You must be signed in to change notification settings - Fork 174
The mini design of using xcat inventory templates to setup xCAT cluster with ansible
As a xCAT user, I want to setup a xCAT cluster rapidly.
As a xCAT user, I have 2 hosts named host1 and host2. I want to install ansible in host1, and I want to use ansible on host1 to setup host2 as xCAT MN cluster rapidly. My steps:
-
install ansible on host1, since xCAT MN is host2, make sure ssh password-less between host1 and host2.
-
download xCAT ansible playbooks name
xcat-automation
on host1, manually add host2 inxcat-automation/hosts
file and customize other playbooks variables if needed, such as NFS server, OS image ISO name, software URL etc. -
download xcat-inventory cluster templates to
xcat-automation
directory on host1, name it asxcat_inventory_template.yaml
. -
manually customize the object in the
xcat_inventory_template.yaml
, including site object, network object, passwd object, node object and osimage object. -
run
ansible-playbook
command using main playbook under xcat-automation diretory to setup xCAT cluster, for exampleansible-playbook -i hosts fast_cluster.yaml
. After the command is finished, xCAT cluster is ready on host2.
-
download xCAT from xcat.org, and install xCAT on target MN ------(Done)
-
configure xCAT MN using xcat-inventory templates ------(#task55)
- configure site object
- configure passwd object
- configure networks object
- configure route object
- configure policy object
- import node object
- import osimage object
-
switch Database (Mysql or Postgresql) ------(Not Done)
-
OS image management ------(partially Done, osimage template is not ready in xcat-inventory )
- generate basic osimage definition
- customize osimage with other application -------mellanox and cuda etc
- osimage list|update|delete using xcat-inventory
-
xCAT nodes management ------(Not Done)
- node.list
- node.delete
- node.update
-
xCAT network service management ------(Not Done)
- DNS
- DHCP
-
invoke OS provision ------(Not Done)
- rinstall/nodeset/rsetboot/rpower to invoke OS provision
The playbook is named xcat-automation
, its structure is at the end of this part. Here is the explanation of the structure.
-
xcat-automation
is the playbooks top directory name. It containshosts
, 6 yaml files and 3 directories (group_vars
,host_vars
androles
). -
hosts
is inventory file for production servers. -
fast_cluster.yaml
is the main playbook, it runs the whole cluster setup process:ansible-playbook -i hosts fast_cluster.yaml
fast_cluster.yaml
callsinstall_xcat.yaml
,configure_xcat.yaml
,osimage.yaml
andprovision.yaml
. All theinstall_xcat.yaml
,configure_xcat.yaml
,osimage.yaml
andprovison.yaml
can also run separately like:ansible-playbook -i hosts osimage.yaml
-
install_xcat.yaml
is to install xCAT on MN -
configure_xcat.yaml
is to configure xCAT MN, usingxcat-inventory
-
osimage.yaml
is to generate osimage -
provison.yaml
is to configure DNS/DHCP, rinstall the nodes -
xcat_inventory_template.yaml
is customized xcat-inventory template yaml file, it contains site,network,route,passwd and node object.
-
-
group_vars
directory stores variables for particular groups -
host_vars
directory stores variables for particular systems -
roles
directory contains common and xcat directories.- the common directory contains non-xcat function playbook.
- the xcat directory contains xcat function playbook.
-
install.xcat
is to install xCAT using go-xcat. -
configure.xcat
is to configure xCAT MN using xcat-inventory templates -
nodes
is to manage node object:-
node.list|update|delete
is list|update|delete node definition using xcat-inventory
-
-
osimage
is to manage osimage object:-
copycds
is to generate basic osimage definition -
genimage
is to genimage and packimage diskless osimage -
osimage.list|update|delete
is list|update|delete osimage definition using xcat-inventory -
software
is to customize osimage with other application
-
-
provision
is to userinstall
ornodeset,rsetboot,rpower
to invoke OS provision
-
xcat-automation
├── hosts
├── fast_cluster.yaml
├── install_xcat.yaml
├── configure_xcat.yaml
├── osimage.yaml
├── provision.yaml
├── xcat_inventory_template.yaml
│
├── group_vars
│ ├── group1
│ └── group2
│
├── host_vars
│ ├── hostname1
│ └── hostname2
│
└── roles
├── common
│ ├── nfs.mount
│ └── nfs.umount
│
└── xcat
├── install.xcat
├── configure.xcat
├── network.service
│ ├── DHCP
│ └── DNS
├── nodes
│ ├── node.list
│ ├── node.update
│ └── node.delete
├── osimage
│ ├── copycds
│ ├── genimage
│ ├── osimage.list
│ ├── osimage.update
│ ├── osimage.delete
│ └── software
│ ├── mellanox.ofed
│ └── nvidia.cuda
└── provision
- Nov 13, 2024: xCAT 2.17 released.
- Mar 08, 2023: xCAT 2.16.5 released.
- Jun 20, 2022: xCAT 2.16.4 released.
- Nov 17, 2021: xCAT 2.16.3 released.
- May 25, 2021: xCAT 2.16.2 released.
- Nov 06, 2020: xCAT 2.16.1 released.
- Jun 17, 2020: xCAT 2.16 released.
- Mar 06, 2020: xCAT 2.15.1 released.
- Nov 11, 2019: xCAT 2.15 released.
- Mar 29, 2019: xCAT 2.14.6 released.
- Dec 07, 2018: xCAT 2.14.5 released.
- Oct 19, 2018: xCAT 2.14.4 released.
- Aug 24, 2018: xCAT 2.14.3 released.
- Jul 13, 2018: xCAT 2.14.2 released.
- Jun 01, 2018: xCAT 2.14.1 released.
- Apr 20, 2018: xCAT 2.14 released.
- Mar 14, 2018: xCAT 2.13.11 released.
- Jan 26, 2018: xCAT 2.13.10 released.
- Dec 18, 2017: xCAT 2.13.9 released.
- Nov 03, 2017: xCAT 2.13.8 released.
- Sep 22, 2017: xCAT 2.13.7 released.
- Aug 10, 2017: xCAT 2.13.6 released.
- Jun 30, 2017: xCAT 2.13.5 released.
- May 19, 2017: xCAT 2.13.4 released.
- Apr 14, 2017: xCAT 2.13.3 released.
- Feb 24, 2017: xCAT 2.13.2 released.
- Jan 13, 2017: xCAT 2.13.1 released.
- Dec 09, 2016: xCAT 2.13 released.
- Dec 06, 2016: xCAT 2.9.4 (AIX only) released.
- Nov 11, 2016: xCAT 2.12.4 released.
- Sep 30, 2016: xCAT 2.12.3 released.
- Aug 19, 2016: xCAT 2.12.2 released.
- Jul 08, 2016: xCAT 2.12.1 released.
- May 20, 2016: xCAT 2.12 released.
- Apr 22, 2016: xCAT 2.11.1 released.
- Mar 11, 2016: xCAT 2.9.3 (AIX only) released.
- Dec 11, 2015: xCAT 2.11 released.
- Nov 11, 2015: xCAT 2.9.2 (AIX only) released.
- Jul 30, 2015: xCAT 2.10 released.
- Jul 30, 2015: xCAT migrates from sourceforge to github
- Jun 26, 2015: xCAT 2.7.9 released.
- Mar 20, 2015: xCAT 2.9.1 released.
- Dec 12, 2014: xCAT 2.9 released.
- Sep 5, 2014: xCAT 2.8.5 released.
- May 23, 2014: xCAT 2.8.4 released.
- Jan 24, 2014: xCAT 2.7.8 released.
- Nov 15, 2013: xCAT 2.8.3 released.
- Jun 26, 2013: xCAT 2.8.2 released.
- May 17, 2013: xCAT 2.7.7 released.
- May 10, 2013: xCAT 2.8.1 released.
- Feb 28, 2013: xCAT 2.8 released.
- Nov 30, 2012: xCAT 2.7.6 released.
- Oct 29, 2012: xCAT 2.7.5 released.
- Aug 27, 2012: xCAT 2.7.4 released.
- Jun 22, 2012: xCAT 2.7.3 released.
- May 25, 2012: xCAT 2.7.2 released.
- Apr 20, 2012: xCAT 2.7.1 released.
- Mar 19, 2012: xCAT 2.7 released.
- Mar 15, 2012: xCAT 2.6.11 released.
- Jan 23, 2012: xCAT 2.6.10 released.
- Nov 15, 2011: xCAT 2.6.9 released.
- Sep 30, 2011: xCAT 2.6.8 released.
- Aug 26, 2011: xCAT 2.6.6 released.
- May 20, 2011: xCAT 2.6 released.
- Feb 14, 2011: Watson plays on Jeopardy and is managed by xCAT!
- xCAT OS And Hw Support Matrix
- Oct 22, 2010: xCAT 2.5 released.
- Apr 30, 2010: xCAT 2.4 is released.
- Oct 31, 2009: xCAT 2.3 released. xCAT's 10 year anniversary!
- Apr 16, 2009: xCAT 2.2 released.
- Oct 31, 2008: xCAT 2.1 released.
- Sep 12, 2008: Support for xCAT 2 can now be purchased!
- June 9, 2008: xCAT breaths life into (at the time) the fastest supercomputer on the planet
- May 30, 2008: xCAT 2.0 for Linux officially released!
- Oct 31, 2007: IBM open sources xCAT 2.0 to allow collaboration among all of the xCAT users.
- Oct 31, 1999: xCAT 1.0 is born!
xCAT started out as a project in IBM developed by Egan Ford. It was quickly adopted by customers and IBM manufacturing sites to rapidly deploy clusters.