SlideShare une entreprise Scribd logo
1  sur  36
Announcing inithub.org: A New
Resource for Extending & Leveraging
the Power & Flexibility of Cloud-Init
Aaron Welch
Co-Founder, SVP Product
What is
an open-source project supported by
Canonical that is the defacto multi-
distribution package that handles the early
initialization of a cloud instance.
cloud-init is:
Some background
Some background
M’KAY
Some background
∎ Setting up custom repositories
∎ Configuring an instance hostname
∎ Bootstrapping salt / puppet / chef / etc
∎ Managing users and SSH keys
∎ Setting up ephemeral mount points
∎ Configuring network devices
CAPABILITIES
Some background
User-data is a powerful part of cloud-init that
enables the end user to inject configuration
options and/or scripts into the cloud-init
process at provision time, which is used by
cloud-init to do, well, whatever you want!
USER-DATA
Some background
Let’s kick off a demo real quick using inithub
and user-data to show you how it works, then
circle back to the presentation
(QUICK DEMO)
Some background
● shell scripts
● cloud-config YAML
● url includes
● upstart-jobs
● part-handlers
● cloud-boothook
USER-DATA FORMATS
Some background
● simple shell script example
USER-DATA FORMATS
#!/bin/bash
echo “Hello world!” > /tmp/shellscript-test
Some background
● simple cloud-config (YAML) example
USER-DATA FORMATS
#cloud-config
write_files:
- content: |
Hello world!
path: /tmp/cloud-config-test
* more examples: https://cloudinit.readthedocs.io/en/latest/topics/examples.html#yaml-examples
Some background
● less simple cloud-config example
USER-DATA FORMATS
#cloud-config
# Add groups to the system
# The following example adds the ubuntu group with members foo and bar and
# the group cloud-users.
groups:
- ubuntu: [foo,bar]
- cloud-users
# Add users to the system. Users are added after groups are added.
users:
- default
- name: foobar
gecos: Foo B. Bar
primary-group: foobar
groups: users
selinux-user: staff_u
expiredate: 2012-09-01
ssh-import-id: foobar
lock_passwd: false
passwd: $6$j212wezy$7H/1LT4f9/N3wpgNunhsIqtMj62OKiS3nyNwuizouQc3u7MbYCarYeAHWYPYb2FT.lbioDm2RrkJPb9BZMN1O/
- name: barfoo
gecos: Bar B. Foo
sudo: ALL=(ALL) NOPASSWD:ALL
groups: users, admin
ssh-import-id: None
lock_passwd: true
ssh-authorized-keys:
- <ssh pub key 1>
- <ssh pub key 2>
- name: cloudy
gecos: Magic Cloud App Daemon User
Some background
Allows you to combine multiple data formats
MULTIPART-MIME
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="_=_swift_v4_1495602312_307e131ddbcf662f952cd6a359c3ad31_=_"
--_=_swift_v4_1495602312_307e131ddbcf662f952cd6a359c3ad31_=_
Content-Type: text/cloud-config; charset=utf-8
Content-Transfer-Encoding: quoted-printable
#cloud-config
write_files:
- content: |
Hello world, I was written using cloud-config
path: /tmp/cloud-config-test
Some background
In the end, if you are using cloud-init to any real
degree you’ll have to decide where these pieces
of data live.
Solutions range from revisioned S3 buckets to
github gists and random files on various local
desktops.
WHERE DOES THIS LIVE?
Some background
Not super great, especially if you are
working in a collaborative environment.
WHERE DOES THIS LIVE?
Some background
Cloud-init and user-data are extremely powerful and useful
tools, but has some practical usability issues:
∎ multi-part mime format is hard to format and manage
∎ user-data can get long and unwieldy
∎ there isn’t a great place for all the user-data to live
TO SUM UP
So, fine.
Why does Packet care about this?
So, fine.
Why does Packet care about this?
Packet has thousands of users who utilize cloud-
init and user-data every day, and when it fails or
has issues, then it becomes our problem even if
we are not the direct cause.
So, like many projects, a solution was born out of
frustration and laziness
So we built inithub.org
We had several goals for inithub:
∎ extend cloud-init only, do not require any
modifications or changes for it to work
inithub.org overview
We had several goals for inithub:
∎ extend cloud-init only, do not require any
modifications or changes for it to work
∎ provide a dedicated repository for user-data that
is revisioned and easy to use
inithub.org overview
We had several initial goals for inithub:
∎ extend cloud-init only, do not require any
modifications or changes for it to work
∎ provide a dedicated repository for user-data that
is revisioned and easy to use
∎ reduce the likelyhood of user error by providing
dynamically rendered multipart user-data
accessed by simple include urls statements
inithub.org overview
So basically, inithub.org takes this:
inithub.org overview
#cloud-config
# Add groups to the system
# The following example adds the ubuntu group with members foo and bar and
# the group cloud-users.
groups:
- ubuntu: [foo,bar]
- cloud-users
# Add users to the system. Users are added after groups are added.
users:
- default
- name: foobar
gecos: Foo B. Bar
primary-group: foobar
groups: users
selinux-user: staff_u
expiredate: 2012-09-01
ssh-import-id: foobar
lock_passwd: false
and gives you this:
inithub.org overview
#include https://inithub.org/u/00ckKk
and gives you this:
inithub.org overview
#include https://inithub.org/u/00ckKk
So it’s basically a url shortener. Yippee.
inithub.org overview
So it’s basically a url shortener. Yippee.
Fundamentally yes, but wait, there’s more!
inithub.org overview
So it’s basically a url shortener. Yippee.
Fundamentally yes, but wait, there’s more!
inithub allows you to easily combine scripts,
includes, and cloud-config yaml into multipart mime,
using the same simple include format
inithub.org overview
So it’s basically a fancy, dynamic url shortener.
inithub.org overview
So it’s basically a fancy, dynamic url shortener.
Yep!
inithub aims to solve a few usability issues with
cloud-init, that cloud-init can’t easily solve without a
central platform.
inithub.org overview
Got any screenshots?
inithub.org overview
Got any screenshots?
Yep!
inithub.org overview
screenshots!
screenshots!
Inithub.org is currently what we consider a first
release. It is a simple, functional tool that provides
the fundamental value we desired.
We would love to continue to develop the tool
given community interest and contributions.
FUTURE ROADMAP
In Conclusion
You can sign up today at inithub.org
We also are on slack at slack.inithub.org
We’re at the Packet booth for the rest of the
conference if you have questions or feedback
Thank you!
JOIN US
In Conclusion

Contenu connexe

Tendances

Weird things we've seen with OpenStack Neutron
Weird things we've seen with OpenStack NeutronWeird things we've seen with OpenStack Neutron
Weird things we've seen with OpenStack NeutronNick Jones
 
Forget MAMP and WAMP, Use Virtual Box to Have a Real Ubuntu Server
Forget MAMP and WAMP, Use Virtual Box to Have a Real Ubuntu ServerForget MAMP and WAMP, Use Virtual Box to Have a Real Ubuntu Server
Forget MAMP and WAMP, Use Virtual Box to Have a Real Ubuntu Serveraaroncouch
 
Building Docker images with Puppet
Building Docker images with PuppetBuilding Docker images with Puppet
Building Docker images with PuppetNick Jones
 
Performance all teh things
Performance all teh thingsPerformance all teh things
Performance all teh thingsMarcus Deglos
 
OpenNebulaConf 2016 - Evolution of OpenNebula at Netways by Sebastian Saemann...
OpenNebulaConf 2016 - Evolution of OpenNebula at Netways by Sebastian Saemann...OpenNebulaConf 2016 - Evolution of OpenNebula at Netways by Sebastian Saemann...
OpenNebulaConf 2016 - Evolution of OpenNebula at Netways by Sebastian Saemann...OpenNebula Project
 
PXEless Discovery with Foreman
PXEless Discovery with ForemanPXEless Discovery with Foreman
PXEless Discovery with ForemanStephen Benjamin
 
PuppetConf 2016: An Introduction to Measuring and Tuning PE Performance – Cha...
PuppetConf 2016: An Introduction to Measuring and Tuning PE Performance – Cha...PuppetConf 2016: An Introduction to Measuring and Tuning PE Performance – Cha...
PuppetConf 2016: An Introduction to Measuring and Tuning PE Performance – Cha...Puppet
 
How we setup Rsync-powered Incremental Backups
How we setup Rsync-powered Incremental BackupsHow we setup Rsync-powered Incremental Backups
How we setup Rsync-powered Incremental Backupsnicholaspaun
 
Cobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioningCobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioningRUDDER
 
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google CloudDrupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google CloudDropsolid
 
Lukas Macura - Employing Zabbix to monitor OpenWrt (Beesip) devices with Uciprov
Lukas Macura - Employing Zabbix to monitor OpenWrt (Beesip) devices with UciprovLukas Macura - Employing Zabbix to monitor OpenWrt (Beesip) devices with Uciprov
Lukas Macura - Employing Zabbix to monitor OpenWrt (Beesip) devices with UciprovZabbix
 
Ensemble oscon 2011
Ensemble oscon 2011Ensemble oscon 2011
Ensemble oscon 2011OSCON Byrum
 
A One-Stop Solution for Puppet and OpenStack
A One-Stop Solution for Puppet and OpenStackA One-Stop Solution for Puppet and OpenStack
A One-Stop Solution for Puppet and OpenStackPuppet
 
SaltConf 2014: Safety with powertools
SaltConf 2014: Safety with powertoolsSaltConf 2014: Safety with powertools
SaltConf 2014: Safety with powertoolsThomas Jackson
 
Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a...
Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a...Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a...
Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a...Acquia
 
[MeetUp][2nd] 컭on턺
[MeetUp][2nd] 컭on턺[MeetUp][2nd] 컭on턺
[MeetUp][2nd] 컭on턺InfraEngineer
 
Nuxeo5 - Continuous Integration
Nuxeo5 - Continuous IntegrationNuxeo5 - Continuous Integration
Nuxeo5 - Continuous IntegrationPASCAL Jean Marie
 
Data integration with embulk
Data integration with embulkData integration with embulk
Data integration with embulkTeguh Nugraha
 
Using filesystem capabilities with rsync
Using filesystem capabilities with rsyncUsing filesystem capabilities with rsync
Using filesystem capabilities with rsyncHazel Smith
 

Tendances (20)

Weird things we've seen with OpenStack Neutron
Weird things we've seen with OpenStack NeutronWeird things we've seen with OpenStack Neutron
Weird things we've seen with OpenStack Neutron
 
Forget MAMP and WAMP, Use Virtual Box to Have a Real Ubuntu Server
Forget MAMP and WAMP, Use Virtual Box to Have a Real Ubuntu ServerForget MAMP and WAMP, Use Virtual Box to Have a Real Ubuntu Server
Forget MAMP and WAMP, Use Virtual Box to Have a Real Ubuntu Server
 
Building Docker images with Puppet
Building Docker images with PuppetBuilding Docker images with Puppet
Building Docker images with Puppet
 
Performance all teh things
Performance all teh thingsPerformance all teh things
Performance all teh things
 
OpenNebulaConf 2016 - Evolution of OpenNebula at Netways by Sebastian Saemann...
OpenNebulaConf 2016 - Evolution of OpenNebula at Netways by Sebastian Saemann...OpenNebulaConf 2016 - Evolution of OpenNebula at Netways by Sebastian Saemann...
OpenNebulaConf 2016 - Evolution of OpenNebula at Netways by Sebastian Saemann...
 
PXEless Discovery with Foreman
PXEless Discovery with ForemanPXEless Discovery with Foreman
PXEless Discovery with Foreman
 
PuppetConf 2016: An Introduction to Measuring and Tuning PE Performance – Cha...
PuppetConf 2016: An Introduction to Measuring and Tuning PE Performance – Cha...PuppetConf 2016: An Introduction to Measuring and Tuning PE Performance – Cha...
PuppetConf 2016: An Introduction to Measuring and Tuning PE Performance – Cha...
 
How we setup Rsync-powered Incremental Backups
How we setup Rsync-powered Incremental BackupsHow we setup Rsync-powered Incremental Backups
How we setup Rsync-powered Incremental Backups
 
Cobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioningCobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioning
 
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google CloudDrupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud
 
Lukas Macura - Employing Zabbix to monitor OpenWrt (Beesip) devices with Uciprov
Lukas Macura - Employing Zabbix to monitor OpenWrt (Beesip) devices with UciprovLukas Macura - Employing Zabbix to monitor OpenWrt (Beesip) devices with Uciprov
Lukas Macura - Employing Zabbix to monitor OpenWrt (Beesip) devices with Uciprov
 
Ensemble oscon 2011
Ensemble oscon 2011Ensemble oscon 2011
Ensemble oscon 2011
 
A One-Stop Solution for Puppet and OpenStack
A One-Stop Solution for Puppet and OpenStackA One-Stop Solution for Puppet and OpenStack
A One-Stop Solution for Puppet and OpenStack
 
Linux Day2
Linux Day2Linux Day2
Linux Day2
 
SaltConf 2014: Safety with powertools
SaltConf 2014: Safety with powertoolsSaltConf 2014: Safety with powertools
SaltConf 2014: Safety with powertools
 
Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a...
Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a...Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a...
Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a...
 
[MeetUp][2nd] 컭on턺
[MeetUp][2nd] 컭on턺[MeetUp][2nd] 컭on턺
[MeetUp][2nd] 컭on턺
 
Nuxeo5 - Continuous Integration
Nuxeo5 - Continuous IntegrationNuxeo5 - Continuous Integration
Nuxeo5 - Continuous Integration
 
Data integration with embulk
Data integration with embulkData integration with embulk
Data integration with embulk
 
Using filesystem capabilities with rsync
Using filesystem capabilities with rsyncUsing filesystem capabilities with rsync
Using filesystem capabilities with rsync
 

Similaire à Inithub.org presentation

APACHE
APACHEAPACHE
APACHEARJUN
 
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTOClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTOAltinity Ltd
 
Chicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyChicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyMediafly
 
CloudStack and cloud-init
CloudStack and cloud-initCloudStack and cloud-init
CloudStack and cloud-initMarcusS13
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017Patrick Chanezon
 
Cloud Foundry V2 | Intermediate Deep Dive
Cloud Foundry V2 | Intermediate Deep DiveCloud Foundry V2 | Intermediate Deep Dive
Cloud Foundry V2 | Intermediate Deep DiveKazuto Kusama
 
Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developerPaul Czarkowski
 
Development Setup of B-Translator
Development Setup of B-TranslatorDevelopment Setup of B-Translator
Development Setup of B-TranslatorDashamir Hoxha
 
Install nagios
Install nagiosInstall nagios
Install nagioshassandb
 
Install nagios
Install nagiosInstall nagios
Install nagioshassandb
 
Install nagios
Install nagiosInstall nagios
Install nagioshassandb
 
Practical solutions for connections administrators
Practical solutions for connections administratorsPractical solutions for connections administrators
Practical solutions for connections administratorsSharon James
 
Lean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and DrushLean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and DrushPantheon
 
DirectShare Quick Start Setup Guide
DirectShare Quick Start Setup GuideDirectShare Quick Start Setup Guide
DirectShare Quick Start Setup GuideChristian Petrou
 
Sa106 – practical solutions for connections administrators
Sa106 – practical solutions for connections administratorsSa106 – practical solutions for connections administrators
Sa106 – practical solutions for connections administratorsSharon James
 

Similaire à Inithub.org presentation (20)

APACHE
APACHEAPACHE
APACHE
 
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTOClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
 
Chicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyChicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - Mediafly
 
CloudStack and cloud-init
CloudStack and cloud-initCloudStack and cloud-init
CloudStack and cloud-init
 
One-Man Ops
One-Man OpsOne-Man Ops
One-Man Ops
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017
 
Cloud Foundry V2 | Intermediate Deep Dive
Cloud Foundry V2 | Intermediate Deep DiveCloud Foundry V2 | Intermediate Deep Dive
Cloud Foundry V2 | Intermediate Deep Dive
 
Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developer
 
Development Setup of B-Translator
Development Setup of B-TranslatorDevelopment Setup of B-Translator
Development Setup of B-Translator
 
HPC on OpenStack
HPC on OpenStackHPC on OpenStack
HPC on OpenStack
 
Install nagios
Install nagiosInstall nagios
Install nagios
 
Install nagios
Install nagiosInstall nagios
Install nagios
 
Install nagios
Install nagiosInstall nagios
Install nagios
 
Practical solutions for connections administrators
Practical solutions for connections administratorsPractical solutions for connections administrators
Practical solutions for connections administrators
 
Lean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and DrushLean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and Drush
 
DirectShare Quick Start Setup Guide
DirectShare Quick Start Setup GuideDirectShare Quick Start Setup Guide
DirectShare Quick Start Setup Guide
 
Apache
ApacheApache
Apache
 
Apache
ApacheApache
Apache
 
App Deployment on Cloud
App Deployment on CloudApp Deployment on Cloud
App Deployment on Cloud
 
Sa106 – practical solutions for connections administrators
Sa106 – practical solutions for connections administratorsSa106 – practical solutions for connections administrators
Sa106 – practical solutions for connections administrators
 

Dernier

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 

Dernier (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

Inithub.org presentation

  • 1. Announcing inithub.org: A New Resource for Extending & Leveraging the Power & Flexibility of Cloud-Init Aaron Welch Co-Founder, SVP Product
  • 3. an open-source project supported by Canonical that is the defacto multi- distribution package that handles the early initialization of a cloud instance. cloud-init is: Some background
  • 5. Some background ∎ Setting up custom repositories ∎ Configuring an instance hostname ∎ Bootstrapping salt / puppet / chef / etc ∎ Managing users and SSH keys ∎ Setting up ephemeral mount points ∎ Configuring network devices CAPABILITIES
  • 6. Some background User-data is a powerful part of cloud-init that enables the end user to inject configuration options and/or scripts into the cloud-init process at provision time, which is used by cloud-init to do, well, whatever you want! USER-DATA
  • 7. Some background Let’s kick off a demo real quick using inithub and user-data to show you how it works, then circle back to the presentation (QUICK DEMO)
  • 8. Some background ● shell scripts ● cloud-config YAML ● url includes ● upstart-jobs ● part-handlers ● cloud-boothook USER-DATA FORMATS
  • 9. Some background ● simple shell script example USER-DATA FORMATS #!/bin/bash echo “Hello world!” > /tmp/shellscript-test
  • 10. Some background ● simple cloud-config (YAML) example USER-DATA FORMATS #cloud-config write_files: - content: | Hello world! path: /tmp/cloud-config-test * more examples: https://cloudinit.readthedocs.io/en/latest/topics/examples.html#yaml-examples
  • 11. Some background ● less simple cloud-config example USER-DATA FORMATS #cloud-config # Add groups to the system # The following example adds the ubuntu group with members foo and bar and # the group cloud-users. groups: - ubuntu: [foo,bar] - cloud-users # Add users to the system. Users are added after groups are added. users: - default - name: foobar gecos: Foo B. Bar primary-group: foobar groups: users selinux-user: staff_u expiredate: 2012-09-01 ssh-import-id: foobar lock_passwd: false passwd: $6$j212wezy$7H/1LT4f9/N3wpgNunhsIqtMj62OKiS3nyNwuizouQc3u7MbYCarYeAHWYPYb2FT.lbioDm2RrkJPb9BZMN1O/ - name: barfoo gecos: Bar B. Foo sudo: ALL=(ALL) NOPASSWD:ALL groups: users, admin ssh-import-id: None lock_passwd: true ssh-authorized-keys: - <ssh pub key 1> - <ssh pub key 2> - name: cloudy gecos: Magic Cloud App Daemon User
  • 12. Some background Allows you to combine multiple data formats MULTIPART-MIME MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="_=_swift_v4_1495602312_307e131ddbcf662f952cd6a359c3ad31_=_" --_=_swift_v4_1495602312_307e131ddbcf662f952cd6a359c3ad31_=_ Content-Type: text/cloud-config; charset=utf-8 Content-Transfer-Encoding: quoted-printable #cloud-config write_files: - content: | Hello world, I was written using cloud-config path: /tmp/cloud-config-test
  • 13. Some background In the end, if you are using cloud-init to any real degree you’ll have to decide where these pieces of data live. Solutions range from revisioned S3 buckets to github gists and random files on various local desktops. WHERE DOES THIS LIVE?
  • 14. Some background Not super great, especially if you are working in a collaborative environment. WHERE DOES THIS LIVE?
  • 15. Some background Cloud-init and user-data are extremely powerful and useful tools, but has some practical usability issues: ∎ multi-part mime format is hard to format and manage ∎ user-data can get long and unwieldy ∎ there isn’t a great place for all the user-data to live TO SUM UP
  • 16. So, fine. Why does Packet care about this?
  • 17. So, fine. Why does Packet care about this? Packet has thousands of users who utilize cloud- init and user-data every day, and when it fails or has issues, then it becomes our problem even if we are not the direct cause.
  • 18. So, like many projects, a solution was born out of frustration and laziness
  • 19. So we built inithub.org
  • 20. We had several goals for inithub: ∎ extend cloud-init only, do not require any modifications or changes for it to work inithub.org overview
  • 21. We had several goals for inithub: ∎ extend cloud-init only, do not require any modifications or changes for it to work ∎ provide a dedicated repository for user-data that is revisioned and easy to use inithub.org overview
  • 22. We had several initial goals for inithub: ∎ extend cloud-init only, do not require any modifications or changes for it to work ∎ provide a dedicated repository for user-data that is revisioned and easy to use ∎ reduce the likelyhood of user error by providing dynamically rendered multipart user-data accessed by simple include urls statements inithub.org overview
  • 23. So basically, inithub.org takes this: inithub.org overview #cloud-config # Add groups to the system # The following example adds the ubuntu group with members foo and bar and # the group cloud-users. groups: - ubuntu: [foo,bar] - cloud-users # Add users to the system. Users are added after groups are added. users: - default - name: foobar gecos: Foo B. Bar primary-group: foobar groups: users selinux-user: staff_u expiredate: 2012-09-01 ssh-import-id: foobar lock_passwd: false
  • 24. and gives you this: inithub.org overview #include https://inithub.org/u/00ckKk
  • 25. and gives you this: inithub.org overview #include https://inithub.org/u/00ckKk
  • 26. So it’s basically a url shortener. Yippee. inithub.org overview
  • 27. So it’s basically a url shortener. Yippee. Fundamentally yes, but wait, there’s more! inithub.org overview
  • 28. So it’s basically a url shortener. Yippee. Fundamentally yes, but wait, there’s more! inithub allows you to easily combine scripts, includes, and cloud-config yaml into multipart mime, using the same simple include format inithub.org overview
  • 29. So it’s basically a fancy, dynamic url shortener. inithub.org overview
  • 30. So it’s basically a fancy, dynamic url shortener. Yep! inithub aims to solve a few usability issues with cloud-init, that cloud-init can’t easily solve without a central platform. inithub.org overview
  • 35. Inithub.org is currently what we consider a first release. It is a simple, functional tool that provides the fundamental value we desired. We would love to continue to develop the tool given community interest and contributions. FUTURE ROADMAP In Conclusion
  • 36. You can sign up today at inithub.org We also are on slack at slack.inithub.org We’re at the Packet booth for the rest of the conference if you have questions or feedback Thank you! JOIN US In Conclusion

Notes de l'éditeur

  1. Please raise your hands if you are familiar with or have used cloud-init
  2. Fundamentally, cloud-init is software that runs after a cloud instance has been created which can do a wide variety of operations to configure the instance. Both the cloud provider and the end user can use it to do anything from configuring RAID, setting up network, installing other software, or anything else that may be required to bring the instance online and into the desired state after boot. Cloud-init is supported It is currently installed in the Ubuntu Cloud Images and also in the official Ubuntu images available on Packet, AWS, Azure, GCE and many other clouds. Versions for other systems can be (or have been) created for many of the most common distributions you use and love including Ubuntu, Fedora, Debian, RHEL, CentOS, Free/Open BSD, CoreOs’ ContainerOS, RancherOs, etc. We even have cloud-init support on windows at Packet.
  3. Some more examples of common use cases
  4. User-data is a powerful part of cloud-init that enables the end user to inject configuration options and/or scripts into the cloud-init process at provision time, which is used by cloud-init to do, well, whatever you want!
  5. User-data is a powerful part of cloud-init that enables the end user to inject configuration options and/or scripts into the cloud-init process at provision time, which is used by cloud-init to do, well, whatever you want!
  6. shell scripts - anything with a she-bang will get run as a plain old shell script, bash, python, etc cloud-config - this is the simplest way to do many things via user-data. cloud-config syntax uses YAML, so is “human friendly” and can do a lot of different things out of the box on boot, including package updates / upgrades, setting up different software repositories or mirrors on the system, importing ssh keys and configuring groups and users, writing out arbitrary files, bootstrapping distributed management agents like puppet / chef / etc, configuring resolv.conf - you get the idea url include - The file contains a list of urls, one per line. Each of the URLs will be read, and their content will be passed through this same set of rules. Ie, the content read from the URL can be gzipped, mime-multi-part, or plain text. upstart job - content is placed into a file in /etc/init, and will be consumed by upstart as any other upstart job. part-handlers - custom code for either supporting new mime-types in multi-part user data, or overriding the existing handlers for supported mime-types. Must be python code and is generally used to extend or modify the behaviour of clout-init itself cloud-boothook - this is the earliest executed hook in cloud-init, and is executed every time the system boots or cloud-init runs. I’m not incredibly familiar with use-cases of this format.
  7. This is a somewhat simple example even, and you can see it is getting relatively verbose, so can be unweidly to cut and paste, which is often how user-data is pushed to a cloud provider. This is prone to errors and costly troubleshooting that is a pain in the ass.
  8. Multipart mime user-data is really powerful, it let’s you combine YAML for tasks that are supported by cloud-init out of the box, with scripts or other includes that may require more custom or advanced operations. The problem is, in practice it requires you to use a helper script or something else to format the multipart mime bits, which can be pretty cumbersome, especially if the parts change with any frequency.
  9. We have people who bootstrap everything from network storage nodes to gaming nodes using cloudinit, and of course many just use it to do simple bootstrapping to the distributed management system of choice. Those who are doing more complicated things with container oriented operating systems like coreos’ container os utilize it even more heavily to boot into swarm / docker engine / k8s, etc.
  10. We also heavily utilize cloud-init for bootstrapping nodes ourselves as part of our provisioning process - including initial network and disk setup. I personally use it for setting up demonstrations on the platform, and trying out / testing other software that our end users commonly use, so I started to feel the pain myself directly in terms of ease-of-use and reusability / mangement of the various user-data I was working with. That’s when I came up with an idea...