To fully utilize the power of Raspberry Pis, StackIQ ported Stacki to support the inexpensive single-board computers, creating Stacki Ace: an open-source bare-metal installer for Raspberry Pis.
With the release of Stacki 4.0 comes more improvements in Stacki Ace. The avalanche installer has been added for parallel installation and 20MB images instead of 2GB images are now used to install the backend nodes increasing the installation speed immensely.
This is Greg Bruno's presentation from his webinar on how to create a cluster of Raspberry Pis with Stacki Ace.
2. What is a Raspberry Pi?
Single board computer
Designed to promote teaching of computer science
As of November 2016, 11 million units sold
Raspberry Pi 3 Model B - $35!!
3. Raspberry Pi Stats
1.2 GHz quad-core ARM
64/32 bit capable
1 GB RAM
1 MicroSD slot
4 USB ports
100 Mbit Ethernet
HDMI
Bluetooth
Wireless LAN
Audio / Composite video out
Camera header
Display header
40 pins of general-purpose I/O
4. Raspberry Pi Software
Supports Linux
Debian (“Raspbian”)
• Main software release
CentOS 7.x
• Only 32-bit for now
Many other distributions too
And now Stacki!
5. Stacki Ace
The best ARM on your team is an Ace
Stacki pallet for ARM
• Based on Stacki 4.0
Stacki-ace pallet for ARM
• Raspberry Pi specific configuration
6. Why Stacki Ace?
Great marketing vehicle
X86_64 rules the server space
• But 15 billion ARMs shipped in 2015
Can install a datacenter with a $35 device
Interesting new use cases
• Low-cost pooled storage
• IoT
7. Stacki Ace – What does it do?
Converts a Raspberry Pi into a Stacki frontend
Stacki Ace frontend can install:
• Other Raspberry Pis (“ace” appliances)
• Traditional x86_64 servers (“backend”
appliances)
8. What We Are Going To Do Today
We are going to use a pre-installed Stacki Ace Frontend to build 3
Stacki Ace Backends
Stacki Ace
Frontend
(rasp002)
Network Switch
Stacki Ace
Backend
(rasp003)
Stacki Ace
Backend
(rasp004)
Stacki Ace
Backend
(rasp005)
11. Frontend Installation
Download “stacki-centos.img”:
Copy “stacki-centos.img” to a MicroSD card:
Boot the Raspberry Pi that will be the frontend with the MicroSD card
wget
http://stacki.s3.amazonaws.com/public/pallets/4.1/open-source/ace/stacki-centos.img
dd if=stacki-centos.img of=/dev/sdd
12. Frontend Installation
When the frontend boots, login as “root”
• Password is: “stacki-centos”
• You’ll be asked to change the password
Download the Stacki Ace pallets:
wget http://stacki.s3.amazonaws.com/public/pallets/4.1/open-source/ace/
os-7.3-7.x.armv7hl.disk1.iso
wget http://stacki.s3.amazonaws.com/public/pallets/4.1/open-source/ace/
stacki-4.1-7.x.armv7hl.disk1.iso
wget http://stacki.s3.amazonaws.com/public/pallets/4.1/open-source/ace/
stacki-ace-4.1-7.x.armv7hl.disk1.iso
13. Frontend Installation
Download and run “frontend-install.py”:
This converts vanilla CentOS to a Stacki Ace frontend
wget http://stacki.s3.amazonaws.com/public/pallets/4.1/open-source/ace/
frontend-install.py
./frontend-install.py --stacki-iso=stacki-4.1-7.x.armv7hl.disk1.iso
--stacki-version=4.1 --stacki-name=stacki
-–extra-iso=os-7.3-7.x.armv7hl.disk1.iso
22. For More Info On Stacki Ace
GitHub for downloads and documentation:
Join our Slack channel and our Google Group:
Questions? Email me:
https://github.com/StackIQ/stacki-ace
https://www.stackiq.com/support/
greg.bruno@stackiq.com
24. Basic Kickstart File Processing
Wrote a “kickstart interpreter” for CentOS ARM
• No kickstart on CentOS ARM
Dynamically create a valid kickstart file and send it back to the Pi
• Pre
• Package
• Post
25. Storage Configuration
Set “bootdisk” parameter
• Default: mmcblk0 (the MicroSD card)
• USB storage: sda
Can install onto:
• MicroSD card
• USB-connected hard disk
• USB stick
Note: If you install onto a USB device, you no longer need a
MicroSD card
26. Kickstart File Processing
During an install, NFS mount “/” from the frontend
• This allows for the backend Pi to be “off” the storage so we can
repartition and reformat “/boot” and “/”
We configure /etc/dhcp/dhcpd.conf to answer Raspberry Pi DHCP
requests
• Which we automatically enable via
“program_usb_boot_mode=1” in /boot/config.txt
27. Basic Kickstart File Processing
On each boot, backend asks for kickstart file
Looks at attributes section for “bootaction” attribute
If “bootaction” == “install”, then parse and execute the kickstart file
• Otherwise, do nothing