My GIT Cheatsheet

Setup
$ git config --global user.email "
shariqmus@gmail.com"
$ git config --global user.name "Shariq Mustaquim"
$ git config --list (To Check)

Using Commits
$ git clone
https://shariq_mustaquim@bitbucket.org/vrrlmop/aws_infrastructure.git
local_folder_name
$ cd local_folder_name
$ touch abc.txt
$ nano abc.txt
[..Type Something..]
$ git status
$ git add <filename>
$ git rm --chached <filename>
$ git commit -m "First commit"

Pushing a commit
$ git remote (to check)
$ git branch (to check)
$ git diff --stat origin/master
$ git diff --stat <remote-name>/<branch/name>
$ git push origin master (put to server repo)
$ git pull origin master (get from server repo)

Merge/Conflicts
You will get error on push
Do a pull
Resolve merge
Push again

Branching/Merging

$ git branch <branch_name>
$ git checkout -b <branch_name> <- One Command
$ git branch <- my local branches
$ git branch -r (remote)
$ git checkout master <- switch branch
> To merge, checkout target branch
then 'git merge <dev_branch>
$ git branch -d <branch_name> (delete branch)
$ git push origin master <- push to server

New Project
git config --global user.email "
shariqmus@<email_provider>.com"
git config --global user.name "Shariq Mustaquim"
git config --list (To Check)
cd c:/code/git
mkdir firstprj
cd firstprj
git init
git add README.md
vim index.html [...Add something in the file...]
git add .
git commit -m "first commit"
git remote add origin
https://github.com/shariqmus/firstprj.git
git push -u origin master

Create a develop branch
git branch (to check)
git branch develop (to create branch)
git checkout develop (to checkout and switch to branch)
vim index.html [...Add new code...]
git add .
git commit -m "new updates" .
git push -u origin develop

Create a new repository on the command line
echo "# firstprj" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin
https://github.com/shariqmus/firstprj.git
git push -u origin master

Push an existing repository from the command line
git remote add origin
https://github.com/shariqmus/firstprj.git
git push -u origin master

Import code from another repository
You can initialize this repository with code from a Subversion, Mercurial, or TFS project.

To Discard your local changes and continue
$ git fetch --all
$ git reset --hard origin/master
$ git pul

Add user to sudoers (RHEL)

$ sudo su

# adduser iwadmin

# passwd <password>

# usermod -aG wheel iwadmin

# vi /etc/sudoers

[...add this line after root line:...]

iwadmin    ALL=(ALL)       ALL

@ Kloud Office

Kloud Office on Elizabeth St/Collins St

Reboot an AWS EC2 Instance (Python)

from __future__ import print_function
import sys
import boto3
from botocore.exceptions import ClientError

boto3.setup_default_session(profile_name='default')

instance_id = 'i-094cf9bbbea2bdfbd' #sys.argv[2]
#action = sys.argv[1].upper()

ec2 = boto3.client('ec2')

# Do a dryrun first to verify permissions
try:
    ec2.start_instances(InstanceIds=[instance_id], DryRun=True)
except ClientError as e:
    if 'DryRunOperation' not in str(e):
        raise

# Dry run succeeded, run start_instances without dryrun
try:
    response = ec2.start_instances(InstanceIds=[instance_id], DryRun=False)
    print(response)
except ClientError as e:
    print(e)

Chef Cheatsheet

Download all cookbooks

$ cd ~/chef-repo

$ knife download cookbooks

Download all roles

$ cd ~/chef-repo

$ knife download roles

Download Specific Cookbook

$ knife download cookbooks/cert-QValent\*  --cookbook-version 0.1.0

Creating cookbook

$ cd ~/chef-repo

$ knife cookbook create newrelic-config     /OR/     cd cookbooks; chef generate cookbook newrelic-config

$ cd cookbooks/newrelic-config/recipes

$ touch update_config.rb

 $notepad update_config.rb

[...Author Recipe.....]

Upload cookbook

$ cd ~\chef-repo

$ ruby -c .\cookbooks\cert-QValent\recipes\qvalent-bit.rb

$ foodcritic .\cookbooks\trendMicro\recipes\*

$ knife cookbook test newrelic-config

$ knife cookbook upload newrelic-config

Modify role and include new recipe

$ vim  .\roles\portalapps.json

  >> "recipe[newrelic-config::update_config]"

Upload Role

$ knife upload .\roles\portalapps.json

Assign Role to Nodes

$ knife node list

$ knife node edit sit9-portalapps-ip-0a9a1670

Download cookbook from supermarket

$ knife cookbook site download

Vagrant Cheatsheet

Setting up new system

-Install VirtualBox

-Install Vagrant

- $ vagrant plugin install vagrant-vbguest

- $ vagrant box add hashicorp/precise64    (centos/7)

-Create Vagrantfile (see below)

- $ vagrant up

Debuggin issues

$ set VAGRANT_LOG=info

$ vagrant up

Vagrantfile

# -*- mode: ruby -*-

# vi: set ft=ruby :

Vagrant.configure("2") do |config|

  config.vm.box = "hashicorp/precise64"

  config.vm.network "public_network"

end