SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Kürzlich hochgeladen (20)

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

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

Hinweis der Redaktion

  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...