Skip to content
/ xcat3 Public

This is just a experimental prototype for the technique discussion purpose.

Notifications You must be signed in to change notification settings

chenglch/xcat3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Test Project

This is just a experimental prototype for the technique discussion purpose. It leverage the basic framework of openstack, add support to process multiple resources via one request. It provide the interface to dispatch the workload among multiple conductor hosts and multiple processes on each host. Currently, it can be used to provision redhat or ubuntu system with ssh and pxe plugins.

Process Service Model

  • xcat3-api: Can be looked as a controller node which receive the request from client. It provide rest api interface with pecan and oslo.service.
  • xcat3-conductor: Can be looked as a worker node act as a consumer of mesage queue to process the requests. (support multiple worker nodes)
  • xcat3-network: Manage the dhcp, dns service for target subnet.
  • console-server(TODO): conserver or confluent.

Supported operating systems:

  • Ubuntu 14.04, 16.04
  • Redhat >= 7.0

Installation

Please refer the link xcat-play to setup xcat3 with ansible playbook.

There should be service processes like this

root     10151     1  0 Jun01 ?        00:08:52 /usr/bin/python /usr/local/bin/xcat3-api --config-file /etc/xcat3/xcat3.conf
root     10166 10151  0 Jun01 ?        00:00:00 /usr/bin/python /usr/local/bin/xcat3-api --config-file /etc/xcat3/xcat3.conf
root     10288 10151  0 Jun01 ?        00:00:00 /usr/bin/python /usr/local/bin/xcat3-api --config-file /etc/xcat3/xcat3.conf
root     11137     1  0 Jun01 ?        00:08:56 /usr/bin/python /usr/local/bin/xcat3-conductor --config-file /etc/xcat3/xcat3.conf
root     11156 11137  1 Jun01 ?        00:19:56 /usr/bin/python /usr/local/bin/xcat3-conductor --config-file /etc/xcat3/xcat3.conf
root     11241 11137  1 Jun01 ?        00:19:59 /usr/bin/python /usr/local/bin/xcat3-conductor --config-file /etc/xcat3/xcat3.conf
root     11659     1  1 Jun01 ?        00:19:57 /usr/bin/python /usr/local/bin/xcat3-network --config-file /etc/xcat3/xcat3.conf

Basic Usage

  • Define network based on your environment
xcat3 network-create c920 subnet=11.0.0.0 netmask=255.0.0.0 gateway=11.0.0.101 dynamic_range=11.4.40.111-11.4.40.113 nameservers=11.0.0.101

# If success, the dhcp service should be started like ::

dhcpd -f -q -4 -pf /var/run/xcat3/dhcpd.pid -cf /etc/xcat3/dhcpd.conf -d -lf /var/lib/xcat3/dhcpd.leases
  • Define node (currently only support pxe and ssh plugins)
xcat3 create xcat3test1  --control ssh_username=root,ssh_virt_type=virsh,ssh_address=11.5.102.1,ssh_key_filename=/root/.ssh/id_rsa \
  --nic mac=52:54:00:36:ac:b1,ip=11.5.102.60,name=eth0,primary=True mgt=kvm netboot=pxe arch=x86_64
  • Import image from iso with copycds (Support ubuntu and redhat)
xcat3-copycds /iso/RHEL-7.3-Server-x86_64-dvd1-stable.iso
  • Deploy system
xcat3 osimage-list
xcat3 deploy xcat3test1 --osimage <rhels7.3-x86_64>  # generated by xcat3-copycds
xcat3 power xcat3test1 on
  • Access the bare metal node
# wait about 10 minutes
ssh 11.5.102.60   # ( ip address of xcat3test1)

About

This is just a experimental prototype for the technique discussion purpose.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published