StackiFest16: What's Next in Stacki - Mason Katz
Transcript of StackiFest16: What's Next in Stacki - Mason Katz
WHAT’S NEXT @masonkatz
STACKI HAS 2 GOALS
1: Keep You Under the Threshold
Number of Servers
Ma
na
ge
me
nt
Co
mp
lex
ity
General Data Center
Clusters
PAIN
2: Stay Out of Your Way
DevOps / Configuration Tool
DHCP /DNS / TFTPNetworkDiskOS
In-housedevelopeddeployment
tools
- Disk Array Controller Configuration- Disk Partitioning Configuration
3: World Domination
UNRELEASED STUFF On Github right now
3.1
Bug Fixes
• network bridging • works for install network • still builds over one nic
• network bonding • command line • spreadsheets
Enhancements
• Host spreadsheets • 10x faster loading at scale
BIOS
iPXE • PXE on Steroids
• Supports • HTTP • WAN • iSCSI • Infiniband
Space Time
PXE
① c->* dhcp request ② s->c dhcp response ③ c->s tftp vmlinuz ④ c->s http ks.cfg ⑤ c->* http packages
iPXE
① c->* dhcp request ② s->c dhcp response ③ c->s tftp ipxe ④ c->* dhcp request ⑤ s->c dhcp response ⑥ c->* http vmlinuz ⑦ c->s http ks.cfg ⑧ c->* http packages
No More “Legacy Mode”
NETWORKING
IPv6 • Secondary Interfaces
• command line • Spreadsheets
• Primary is IPv4 • BIOS PXE • DHCP
• BTW – Turns 20 in 2018 (can drink in 2019)
API
STACK is the API • Today
• Shell (stack) • Python (stack.api.Call)
• Web Service • Django-based • Admin / User access control • Access all stack commands
• Remote Management • Shell (stack-ws) • Write your own client for *
CARTS & PALLETS
Simplify • Cart -> Pallet
• Usage • stack create pallet CART_DIRECTORY
• Convert site local carts into pallet .iso files • Developers might prefer this as well
• Wire Abstractions • Something simpler than XML • Not settled on anything yet …
backend.ini
[packages] foo
bar
[post]
script1.sh script2.py
/export/stack/carts/local
bin/script1.sh bin/script2.py
config/backend.ini
graph/ nodes/
RPMS/
config.py if appliance == ‘backend’:
AddPackage(‘foo’) AddPackage(‘bar’)
if attr[‘rack’] = ‘10’: RunScript(‘script1.sh’)
function1()
REMOTE MANAGEMENT
Down The Stack • Support for DRAC, iLo, ?, IPMI
• Apply or Detect Configuration
• Power On/Off
• Setting (fixing) Boot Order
• Firmware Upgrades
• Serial Console
• Temperature Monitoring
100% Hands Free https://github.com/jmcdice/stack-tools
• Answer script for FE build
• Automatically turn on and build BE nodes
• Requires a custom stacki.iso • ks.cfg file • site.attrs file • extend-*.xml file(s)
• Working closely with Nokia (see git repo above)
ks.cfg install url --url file:///mnt/cdrom
lang en_US keyboard us
network --onboot yes --device enp2s0f2 --bootproto static --ip 172.29.55.10
--netmask=255.255.255.0 --gateway 172.29.55.1
--noipv6 --hostname eldora.cloud-band.com
extend-server.xml <?xml version="1.0" standalone="no"?> <kickstart> <package>vim-enhanced</package>
<package>tcpdump</package> <post>
mkdir -p /root/.ssh/ <file name="/root/.ssh/authorized_keys" mode="append” perms=“400”>
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEApCOHZpQ+HWnC7CiJeI2Wht4dyu5V6BivpuNYJvfz/X3bf+3aziGgeTIgVsETLTYp+Hz0wUFOTr335kOSEKJNxNMHZ4eXScX7xeyPOeAmFMLwEcTYIQOTxmyAkkslirI1Zj9bTqgoTLpuGHUvmh7XlNPVHwnVuRKEqgjsyhqp+UIiugeTm1QvbDvh+f/shEhhufB23oM1FQNRIPV12HvxZPwXAGtV/rp8n5ahLRESizWJCKlQJz4zmUNO60IGTr+2p4h9FQ5IgFxjwL+ZXtXSRTsSCG5qrlo8Xnwu4ZjZcDMDWzqGEH7gxJhw1wVyWLzuKeYy7+4u66bekXgd5KF/mQ== [email protected] </file>
</post> </kickstart>
OS
Multiple Versions • Today
• RHEL/CentOS 6.x FEs build 6.x BEs • RHEL/CentOS 7.x FEs build 7.x BEs
• Cross Building • RHEL/CentOS 7.x FEs build 7.x and 6.x BEs
Multi OS • Today
• Ubuntu • CoreOS
• These are lightweight • No Pallets / Carts • No Dynamic Profiles
• Go deeper with Ubuntu
• Explore SUSE, Fedora, Debian
COMMUNITY
Development
watchers 15 stars 48 forks 12
• Python
• Highly Extensible • command line • wire xml
• Create a new Pallet
• Contribute to Wiki
Send Us a Pull Request
Mailing List
Slackers https://stacki.slack.com/signup
QUESTIONS @masonkatz