Post on 13-Apr-2017
GitHub - Getting StartedJonathan Frappier – Senior DevOps Engineer at RoundTower & vBrownBag CrewYour career depends on re-inventing yourself, GitHub MUST be in your skillset
Disclaimer*
Always assume:
• When I say how awesome something is what I really mean “In most cases” that thing is awesome
• Here is one way you could do it, there are many others
• I can’t draw 7 red lines all perpendicular with red, green, or transparent ink
Why do I need to learn Git?
Simon Sinek http://bit.ly/2eLYSPN
Why do I need to learn Git?
“In short, software is eating the world.”
Marc Andreessen 2011 http://on.wsj.com/1Hkyems
What does that even mean?
http://www.visualcapitalist.com/
Largest Companies by Market Cap
2001
2016
What does that even mean?
Uber, the worlds large taxi company owns no vehicles. Facebook, the worlds most popular media owner
creates no content. Alibaba, the most valuable retailer has no inventory, & AirBnB, the worlds largest accommodation provider owns no real estate.
angel.co 2015
But I don’t need Git to be an IT Admin…
But I don’t need Git to be an IT engineer…
Times they are a changing…
Times they are a changing…
Why do I need to learn Git?
“Your career depends on re-inventing
yourself”
Why do I need to learn Git?
Why: Your career depends on re-inventing yourselfHow: By embracing, learning, and accepting thenew skills required to say relevantWhat: DevOps, Ansible, Puppet, Terraform, AWS,And GitHub via this awesome talk
What is Git
Git is a free and open source distributed version control system
What is Version Control
Working with Git/GitHub
If I Git, do I DevOps?
GitHub != DevOps
“DevOps is a cultural and operational model that foster collaboration to
enable high performance IT to achieve business goals”
Brian Gracely, Wikibon
Easy
Easy to setup
Easy to use
Easy-ish to collaborate
Easy
Easy to setup
choco install git
Download, double click, next next next next next….
yum install gitapt-get install git
xcode-select --install
Post Install Setup
Easy to use
git config --global user.name <username>
git config --global user.email <email address>
ssh-keygen –o –a 100 –t ed25519 –C <email address> (provide passphrase)
Post Install Setup
Easy to use
git config --global user.name <username>
git config --global user.email <email address>
ssh-keygen –o –a 100 –t ed25519 –C <email address> (provide passphrase)
Post Install Setup
Easy
Easy to use
git add <filename>
git commit
git push
Easy
Easy-ish to collaborate
branchfork merge
Git Basics – Overview
Git Basics – Create a Repository
https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/
Git Basics – Clone a Repository
Git Basics – Clone a Repository
$ git clone <git repo address – either via SSH or HTTPS>
Git Basics – Check Status
$ git status
Git Basics – Add Files
Git Basics – Add Files
Git Basics – Commit Changes
$ git commit
Git Basics – Push Commits
$ git push
Git Basics – Viewing on GitHub
Git - Getting Beyond Basics…DON’T LET THIS NEXT SECTION SCARE YOU! YOU DON’T NEED
THIS TOMORROW!!!
Git Intermediate – Branches
Git Intermediate – Branches
Git Intermediate – Pushing Branch Commits
Git Intermediate – Merge
Git Intermediate – Merge
Git Intermediate – Merge$ git checkout master$ git merge devel$ git push
Git Intermediate – Branching Theory
Git Intermediate – Fork
Git Intermediate – Fork
Git Intermediate – Fork
Git Intermediate – Pull Requests
WARNING!!!!!
GitHub is PUBLIC!!!!!
• Clean your code
• Don’t hard code usernames, passwords
• Don’t put sensitive files in local repos
Tips
• If its sink or swim..
• Don’t jump into the deep end
• Invest in good technique
• Use the buddy system
• It takes time to go bananas
• Practice, practice, practice
Next Steps
• Check out Commitmas http://bit.ly/Commitmas2
• Practice on https://try.github.io
• Install git on your computer, sign up for an account, and create a repo
• Find a project you can contribute to, or start your own
• Dig in https://git-scm.com/book/en/v2/
Next Steps for PowerShell CodersVester:Vester is a community project that aims to provide an extremely light-weight approach to vSphere configuration management using Pester and PowerCLI. The end-state configuration for each vSphere component, such as clusters and hosts, are abstracted into a simple config file. The configuration is tested and optionally remediated when drift is identified. The entire project is written in PowerShell.
https://github.com/WahlNetwork/Vester
Next Steps for Python CodersAnsible:Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy. Avoid writing scripts or custom code to deploy and update your applications— automate in a language that approaches plain English, using SSH, with no agents to install on remote systems. http://ansible.com/
https://github.com/ansible/ansible
https://github.com/ansible/ansible-modules-extras/tree/devel/cloud/vmware
Next Steps for oh sh!t I can’t code Coders
• Find a project you’re interested in and contribute documentation
https://github.com/ansible/ansible/tree/devel/docsite/rst
• Get started with PowerCLI and PowerShell, go ask Kyle Ruddy a bunch of questions (he is here today), put it in GitHub
• Learn to code
https://www.freecodecamp.com
Jonathan FrappierSenior DevOps EngineerRoundTower Technologies
@jfrappier | @commitmas | @vbrownbag
/in/jonathanfrappier
github.com/jfrappiergithub.com/commitmas
jfrap.comvbrownbag.com