14
Workshop - Building a cart Aishwarya Venkataraman Software Engineer

StackiFest16: Building a Cart

  • Upload
    stackiq

  • View
    310

  • Download
    0

Embed Size (px)

Citation preview

Page 1: StackiFest16: Building a Cart

Workshop - Building a cart

Aishwarya VenkataramanSoftware Engineer

Page 2: StackiFest16: Building a Cart

What is a Cart?Site Specific Pallets▪ Contains site-specific RPM

▪ Contains site-specific configurations

▪ Structurally and Functionally equivalent to a Pallet

Example: Client Cart▪ Contains RPMS to install DevOps tools

▪ Contains custom post-install scripts to configure DevOps tools

▪ Contains custom post-install scripts to run DevOps tools to bring system up to requisite configuration.

Page 3: StackiFest16: Building a Cart

Adding a New InfluxDB Cart

# stack add cart influxDb

# stack list cart

NAME BOXES

screen: default

influxDb: ---------

Page 4: StackiFest16: Building a Cart

Customizing a Cart

# cd /export/stack/carts/influxDb

Add the InfluxDB rpm

# cd RPMS

# wget https://s3.amazonaws.com/influxdb/influxdb-0.10.3-1.x86_64.rpm

# vim nodes/cart-influxDb-backend.xml

Page 5: StackiFest16: Building a Cart

Modifying Node XML file

<?xml version="1.0" standalone="no"?><kickstart><description>InfluxDb cart backend appliance extensions</description>

<package>influxdb</package>

<!-- shell code for post RPM installation --><post>/sbin/chkconfig --add influxdb/sbin/chkconfig influxdb on</post></kickstart>

Page 6: StackiFest16: Building a Cart

Adding Cart to a Box

# stack list box

NAME OS PALLETS CARTS

default: redhat os-6.7-6.x stacki-3.0-6.x ipmi-1.0-3.0 screen

# stack enable cart influxDb

# stack list box

NAME OS PALLETS CARTS

default: redhat os-6.7-6.x stacki-3.0-6.x ipmi-1.0-3.0 screen influxDb

Page 7: StackiFest16: Building a Cart

Viewing the Host Profile

%packages --ignoremissingfoundation-rcsinfluxdblibcapntpopensshopenssh-askpassOpenssh-clients

%post --log=/var/log/stack-install.log

/sbin/chkconfig --add influxdb/sbin/chkconfig influxdb on

%end%post --log=/var/log/stack-install.log

cat >> /var/log/stack-install.log << 'EOF'/export/stack/carts/influxDb/nodes/cart-influxDb-backend.xml: end post sectionEOF

# stack list host profile node204 > /tmp/node204.cfg

Page 8: StackiFest16: Building a Cart

Adding Conditionals to Node XML

<?xml version="1.0" standalone="no"?><kickstart>

<description> influxDb cart backend appliance extensions </description>

<package>influxdb</package>

<!-- shell code for post RPM installation --><post cond="'&appliance;' == 'prod'">/sbin/chkconfig --add influxdb/sbin/chkconfig influxdb on</post></kickstart>

Page 9: StackiFest16: Building a Cart

Additional Node XML Customizations<?xml version="1.0" standalone="no"?><kickstart>

<description> influxDb cart backend appliance extensions </description>

<package>influxdb</package><!-- shell code for post RPM installation --><post cond="'&appliance;' == 'prod'">/sbin/chkconfig --add influxdb/sbin/chkconfig influxdb on</post><post><file name="/etc/motd" perms="0755">Influx package is available</file></post></kickstart>

Page 10: StackiFest16: Building a Cart

Modifying Graph XML file

<?xml version="1.0" standalone="no"?><graph> <description> influxDb cart </description>

<order head="backend" tail="cart-influxDb-backend"/> <edge from="backend" to="cart-influxDb-backend"/>

<order head="prod" tail="cart-influxDb-prod"/> <edge from="prod" to="cart-influxDb-prod"/></graph>

Page 11: StackiFest16: Building a Cart

Viewing the Host Profile

stack list host profile node204 > /tmp/node204.cfg

%packages --ignoremissingfoundation-rcsinfluxdblibcapntpopensshopenssh-askpassOpenssh-clients

%post --log=/var/log/stack-install.log

/sbin/chkconfig --add influxdb/sbin/chkconfig influxdb on

%end%post --log=/var/log/stack-install.log

cat >> /var/log/stack-install.log << 'EOF'/export/stack/carts/influxDb/nodes/cart-influxDb-backend.xml: end post sectionEOF

Page 12: StackiFest16: Building a Cart

Deploying RPMS on the fly# stack compile cart influxDb# stack report host yum node204 | stack report script | ssh -T node204

%packages --ignoremissingfoundation-rcsinfluxdblibcapntpopensshopenssh-askpassOpenssh-clients

%post --log=/var/log/stack-install.log

/sbin/chkconfig --add influxdb/sbin/chkconfig influxdb on

%end%post --log=/var/log/stack-install.log

cat >> /var/log/stack-install.log << 'EOF'/export/stack/carts/influxDb/nodes/cart-influxDb-backend.xml: end post sectionEOF

Page 13: StackiFest16: Building a Cart

Viewing the Host Profile

stack list host profile node204 > /tmp/node204.cfg

%packages --ignoremissingfoundation-rcsinfluxdblibcapntpopensshopenssh-askpassOpenssh-clients

%post --log=/var/log/stack-install.log

/sbin/chkconfig --add influxdb/sbin/chkconfig influxdb on

%end%post --log=/var/log/stack-install.log

cat >> /var/log/stack-install.log << 'EOF'/export/stack/carts/influxDb/nodes/cart-influxDb-backend.xml: end post sectionEOF

Page 14: StackiFest16: Building a Cart

Cart is ready to roll!