GitHub for Newbies - Boston VMware User Group

Post on 13-Apr-2017

288 views 1 download

Transcript of GitHub for Newbies - Boston VMware User Group

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

http://xkcd.com/1597/

What is Git

Git is a free and open source distributed version control system 

But for today this is Git…

http://xkcd.com/1597/

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