Atalhos no MacOS

Resolvi dar uma pesquisada sobre como fazer travessão e numerais e acabei descobrindo mais coisas, compartilho aqui minhas descobertas.

Travessão

Muitas pessoas tem dúvidas sobre como fazer o travessão no MacOs — eu também tinha.

Para fazer o travessão pressione SHIFT + ALT + hífen

Números ordinais

Outra coisa que eu queria aprender era fazer numerais ou números ordinais.

Para fazer o numeral (zero) pressione ALT + 0

Para fazer o numeral (a) pressione ALT + 9

Grau

SHIFT + ALT + 8

20°    

Copyright

OPTION + g

©

Registred

SHIFT + OPTION + r

Team

OPTION + 2

Não igual

OPTION + =

Menor igual

OPTION ,

Maior igual

OPTION .

Apple

SHIFT + OPTION + K

Pesquisando e aprendendo sempre.

Refs

[s]
Guto

Criando ubuntu usb installer no MacOS

Post #notamental que ensina como criar um usbstick no MacOS para instalar o Ubuntu 16.04.1.

1. Processo manual

1.1 Download da imagem

Abra seu terminal e crie um diretório tmp

mkdir tmp; cd tmp/

Faça download da imagem

wget http://releases.ubuntu.com/16.04/ubuntu-16.04.1-desktop-amd64.iso

1.2 Convertendo imagem

Precisamos converter essa imagem para conseguir criar o usb installer

hdiutil convert -format UDRW -o ubuntu-16.04.1-desktop-amd64.img ubuntu-16.04.1-desktop-amd64.iso

1.3 Detectando dispositivo usb

Insira o usb stick que você pretende usar e logo após faça a detecção de discos

diskutil list

Você verá uma saída como esta

/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage Macross                 499.4 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macross                +499.0 GB   disk1
                                 Logical Volume on disk0s2
                                 9FE0CB11-FC20-4BB4-9353-E115CB1FBF94
                                 Unencrypted
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS WD1TB                   999.8 GB   disk2s2
/dev/disk3 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *7.9 GB     disk3
   1:               Windows_NTFS GUTO                    7.9 GB     disk3s1
/dev/disk4 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        +29.2 MB    disk4
   1:                  Apple_HFS UNetbootin              29.1 MB    disk4s1    

No meu caso vou usar o dispositivo /dev/disk3 de 8GB.

1.4 Desmontando dispositivo

Precisamos desmontar para gravar a imagem no dispositivo

diskutil unmountDisk /dev/disk3

1.5 Criando o instalador

Agora vamos transferir a imagem para o usb stick usando o dd

sudo dd if=ubuntu-16.04.1-desktop-amd64.img.dmg of=/dev/disk3 bs=1m

Esse processo pode demorar, dependerá da velocidade do usb stick, no final a saída será similar a esta

1443+1 records in
1443+1 records out

Ignore qualquer popup do finder que aparecer após a conclusão.

1.6 Ejetando o instalador

Ao final do processo ejete o usb stick

diskutil eject /dev/disk3

Pronto, agora você pode instalar o Ubuntu em qualquer computador com esse USB Stick.

Processo via script

Abaixo um exemplo de script para agilizar.

#!/bin/bash

ISONAME="ubuntu-16.04.1-desktop-amd64"
DEVICE="/dev/disk3"

echo "convertendo imagem $ISONAME..."

hdiutil convert -format UDRW -o /Users/gutocarvalho/storage/isos/$ISONAME.img /Users/gutocarvalho/storage/isos/$ISONAME.iso

echo "desmontando dispositivo usb $DEVICE..."

diskutil unmountDisk $DEVICE

echo "Criando instalador usb no dispositivo $DEVICE..."

sudo dd if=/Users/gutocarvalho/storage/isos/$ISONAME.img.dmg of=$DEVICE bs=1m

echo "desmontando dispositivo usb $DEVICE..."

diskutil eject $DEVICE

echo "criacao de disco finalizada."

Criei um snippet no GitLab para facilitar

https://gitlab.com/snippets/25673

[s]
Guto

Por onde iniciar os estudos sobre DevOps?

Muitas pessoas perguntam o que devem estudar ou quais cursos devem fazer para entrar de cabeça no mundo DevOps.

Não é uma resposta fácil, mas tenho algumas indicações para ajudar quem está começando.

1. Vídeos

10 Deploys per day at Flickr

Esse palestra foi a ignição que faltava para a criação do movimento/cultura DevOps em 2009.

https://www.youtube.com/watch?v=LdOe18KhtT4

Entenda as origens DevOps

Vídeo rápido de Damon Edwards (devopsdays core member) acerca das origens do movimento, recomendo.

https://www.youtube.com/watch?v=o7-IuYS0iSE

What is DevOps? - In Simple English

Vídeo curtinho do rackspace que também ajuda.

https://www.youtube.com/watch?v=_I94-tJlovg

DevOpsConf - DevOps State of the Union (John Willis)

Palestra do John Willis (devopsdays core member) na DevOpsCon 2015 sobre o estado do DevOps após 5 anos de seu surgimento.

https://www.youtube.com/watch?v=8rM8lYaMVBE

Five Years of DevOps (Patrick Debois)

Patrick Debois o criador do DevOpsDays e do termo DevOps fala o que achou dos últimos 5 anos de DevOps.

https://www.youtube.com/watch?v=uRMV6tT_mu0

2. Acrônimos

Entenda o que é CAMS

http://devopsdictionary.com/wiki/CAMS

Entenda o que é CALMS

http://whatis.techtarget.com/definition/CALMS

Entenda o que é ICE

http://radar.oreilly.com/2015/01/devops-keeps-it-cool-with-ice.html

Entenda o que é DevSecOps

 http://www.devsecops.org/blog/2015/2/15/what-is-devsecops    

3. Roteiro de estudos

Essa sugestão de estudos é baseada na estrutura CAMS do Willis e Edwards.

3.1 Cultura

  • Estude a metodologia ágil de desenvovlimento
  • Estude metodologias ágeis em geral
  • Estude Scrum
  • Estude Kanban
  • Estude Lean
  • Entenda o que é uma cultura de colaboração e feedback.

Faça um exercicio e tente enxergar os principais problemas culturais do seu time/organização e encontre uma forma corrigir tais problemas adaptando esses métodos.

3.2 Automação

  • Estude virtualização
  • Estude cloud computing
  • Estude Mark Burgess e gerência de configurações
  • Estude infraestrutura como código
  • Conheça pelo menos duas ferramentas de Gerência de Configuração (CFEngine e Puppet)
  • Conheça pelo menos duas ferramentas de Orquestração (Fabric e Ansible)
  • Entenda o que é VCS (Version Control System)
  • Estude GIT pra valer
  • Estude workflows de desenvolvimento usando GIT (olhe os projetos opensource)
  • Estude Continuous Integration
  • Estude Continuous Delivery
  • Estude Continious Deployment
  • Estude TDD/BDD/ATDD
  • Estude Load Testing
  • Estude Stress Testing
  • Estude Security Testing
  • Estude Containers e Docker
  • Estude Microservicos
  • Estude ferramentas para fazer provisionamento automatizado
  • Estude ferramentas de autoserviço
  • Estude sistemas Unix e Linux
  • Estude networking
  • Estude e domine pelo menos 2 linguagens interpretadas (Ruby e Python)
  • Conheça pelo menos 1 stack de cada linguagem
  • Estude a linguagem shell

Labs sugeridos

  • Tente subir uma stack full de automação (ex. puppet)
    • Tente automatizar confs simples do OS (ex. centos)
    • Tente automatizar a instalacao e configuracao de um APP (ex. apache)
  • Tente provisionar VMs ou Containers de forma automatizada via autoserviço
  • Tente construir um pipeline de entrega
    • Indo desde o commit, passando por build, testes até o deploy em vm e container

3.3 Avaliação/Métricas

  • Entenda o que são métricas e pq são importantes
  • Estude real-time-metrics
  • Estude ferramentas APM
  • Conheca bem pelo menos duas ferramentas de monitoramento (Nagios/Zabbix)
  • Estude algum stack para tratamento de logs (ELK)
  • Estude algum stack para coleta e armazenamento métricas (Collectd/Statsd/Graphite/Graphana)

Labs sugeridos

  • Tente subir uma stack full de gestao de logs (ex. ELK)
    • Coloque diversos APPs para jogar dados lá
  • Tente subir um stack full de gestao de dados
    • Gere dados, colete, armazene e visualize com essa stack

3.4 Compartilhamento

  • Entenda a cultura de dividir responsabilidades
  • Entenda a cultura Blameless
  • Aprenda a compartilhar ferramentas entre todos os times
  • Aprenda a compartilhar código entre todos os times
  • Aprenda a compartilhar informações e dados
  • Procure sempre melhorar o processo de comunicação
  • Entenda como funcionam times de produtos
  • Ofereça feedback constante entre os times
  • Volte pra cultura e reinicie o ciclo até aqui
  • Entenda e pratique Dojos
  • Entenda os Hackerspaces
  • Entenda os Hackatons

Cada eixo desse do roteiro de estudos tem cursos disponíveis no mercado, documentação farta online, artigos variados na rede.

Evite procurar por uma formação DevOps no mercado, o ideal é que você mesmo crie um roteiro de estudos.

Se encontrar alguma formação DevOps no mercado, fique alerta, tome muito cuidado para não ser uma empresa inventando algo só para faturar em cima da Buzzword DevOps, não invista seu dinheiro nesses cursos mágicos, como voce viu DevOps é algo amplo, difícil de colocar em um curso de 24 ou 40 horas, procure cursos especializados em centros reconhecidos ou oficiais, vá passando um assunto por vez, um curso por vez se você for da linha dos cursos, se for da linha da autodidaxia, mergulhe nas comunidades, leia, pergunte, compartilhe e aprenda junto conosco.

Coloquei esse guia no GitLab para receber contribs, mande PRs quando quiser.

Agora é começar os estudos, divirta-se!

[s]
Guto

Conhece o projeto rancher?

Rancher é uma plataforma de gerenciamento para containers (funciona com docker).

http://rancher.com

O gerenciador é todo web/gráfico, com interface bem polida e fácil de usar.

Posso até dizer que parece um VMWare para Docker.

O Rancher fala de fábrica Swarm, Kubernetes, Mesos e Cattle (cluster de containers nativo do rancher).

Ele consegue criar clusters em qualquer uma dessas tecnologias.

Para criar um cluster você usa a interface web, ele abstrai tudo pro administrador.

Voce só escolhe qual o tipo de cluster e clica em criar e pronto, cluster rodando, sem dores.

Ele tem Load Balancer, HA, Discovery e tudo que uma ferramenta corporativa de gerenciamento de containers precisa.

Olhando por outro aspecto, ele parece até uma AWS nativa rodando na sua infra (ou no seu notebook).

E tem API para configurar e gerenciar tudo.

http://docs.rancher.com/rancher/v1.2/en/api/

Ele tem um CLI também.

http://docs.rancher.com/rancher/v1.2/en/cli/

Eles criaram o RancherOS para voce instalar um SO Rancher dedicado em BareMetal.

http://rancher.com/rancher-os/

É um OS um tanto quanto diferente, pois tirando o kernel, todo o resto roda em containers.

Fizemos um meetup de docker aqui em Brasília e escolhemos o Rancher para estudar, subimos o rancher server usando docker 1.12 e criamos um cluster de 8 hosts rancher em menos de 15 minutos, esforço mínimo. Após subir o cluster, gastamos mais 5 minutos para fazer o deploy de um APP wordpress+mysql distribuído com LB + discovery entre esses 8 hosts, só não deu tempo de testar o HA, mas pelo que li é tão fácil quanto.

Pra mim esse é o projeto que tem mais futuro nesse mundo dos containers

Se curtiu entre na comunidade ranche-br no telegram

http://telegram.me/rancherbr

#ficaadica #acompanhe #radar-do-guto

Obs.1: Nosso teste com o wordpress utilizou persistência simples de banco mysql, sem HA no banco containerizado, nosso foco foi distribuir o frontend entre vários hosts, somente isso, nem entramos no detalhe de compartilhar um volume para servir o wp-content entre todos os containers (usando convoy-nfs ou gluster-fs). Tem documentação farta para fazer esse lab completo com todos esses detalhes, só não deu tempo de fazer tudo isso no meetup. Enfim, é um projeto promissor, recomendo dar uma acompanhada.

[s]
Guto

Novas turmas de Puppet marcadas no Brasil

Muito leitores e amigos tem me perguntando sobre as datas de treinamento Puppet para o segundo semeste de 2016, sim elas já foram marcadas, seguem as datas!

Puppet Fundamentals

Brasília

Dias 25, 26 e 27 de Outubro

São Paulo

Dias 08, 09 e 10 de Novembro

Puppet Practitioner

São Paulo

Dias 27, 28, 29 de Setembro

Brasília

Dias 22, 23 e 24 de Novembro

Puppet Architect

São Paulo

Dias 13 e 14 de Dezembro

Essas são as últimas turmas do ano, se não aproveitar essa janela terá que esperar até abril de 2017, então aproveite!

http://instruct.com.br

[s]
Guto

Meus dotfiles para osx

Post #notamental, segue abaixo meu repo dotfiles!

https://gitlab.com/gutocarvalho/dotfiles

.bash_profile

https://gitlab.com/gutocarvalho/dotfiles/blob/master/bash_profile.sh

.gitconfig

https://gitlab.com/gutocarvalho/dotfiles/blob/master/gitconfig

.vimrc

https://gitlab.com/gutocarvalho/dotfiles/blob/master/vimrc

[s]
Guto

Boxes vagrant atualizadas no atlas

Meu repositório de box para vagrant foi atualizado ontem, agora todas as box tem Puppet 4 na última versão disponível para aquele sistema operacional.

Repositório Atlas

https://atlas.hashicorp.com/gutocarvalho/

CentOS

CentOS 5.11

https://atlas.hashicorp.com/gutocarvalho/boxes/centos5x64
  • Puppet 4.6.2
  • Virtualbox Guest 5.0.26

CentOS 6.8

https://atlas.hashicorp.com/gutocarvalho/boxes/centos6x64
  • Puppet 4.6.2
  • Virtualbox Guest 5.0.26

CentOS 7.2.1511

https://atlas.hashicorp.com/gutocarvalho/boxes/centos7x64
  • Puppet 4.6.2
  • Virtualbox Guest 5.0.26

Debian

Debian 6.0.10

https://atlas.hashicorp.com/gutocarvalho/boxes/debian6x64
  • Puppet 4.4.1
  • Virtualbox Guest 5.0.26

Debian 7.11

https://atlas.hashicorp.com/gutocarvalho/boxes/debian7x64
  • Puppet 4.6.2
  • Virtualbox Guest 5.0.26

Debian 8.5

https://atlas.hashicorp.com/gutocarvalho/boxes/debian8x64
  • Puppet 4.6.2
  • Virtualbox Guest 5.0.26

Ubuntu

Ubuntu 12.04.5

https://atlas.hashicorp.com/gutocarvalho/boxes/ubuntu1204x64
  • Puppet 4.6.2
  • Virtualbox Guest 5.0.26

Ubuntu 14.04.5

https://atlas.hashicorp.com/gutocarvalho/boxes/ubuntu1404x64
  • Puppet 4.6.2
  • Virtualbox Guest 5.0.26

Ubuntu 16.04.1

https://atlas.hashicorp.com/gutocarvalho/boxes/ubuntu1604x64
  • Puppet 4.6.2
  • Virtualbox Guest 5.0.26

Para adicionar qualquer box digite o comando

vagrant box add gutocarvalho/nome-da-box

[s]
Guto

Origens da Infra Ágil

Após o lançamento do site infraagil.io algumas pessoas me perguntaram sobre suas origens e sobre as motivações que levaram a criação do site e desse modelo.

Esse texto foi parte da versão “alpha” do site infraagil.io, hoje ele não está mais lá, foi retirado para deixar o conteúdo mais objetivo, contudo, seu contexto cabe neste blog.

Origens

Em 2011 eu dividi uma palestra com o colega Daniel Sobral (a.k.a Gandalf) no CONSEGI em Brasília/DF, o tema central da palestra era a gerência de configurações e os benefícios deste modelo para o Governo Federal. Tivemos um excelente quórum e o tema começou a se espalhar pela Esplanada de Ministérios, muitos profissionais queriam saber mais deste conceito e das tecnologias envolvidas.

Creio que aquela foi a primeira oportunidade que eu tive para abordar o momento em que eu vivia como sysadmin. O movimento DevOps estava no início da formação de sua cultura, não fazia nem um ano que John Willis e Damon Edwards haviam criado o acrônimo CAMS, iniciativa que deu norte para a comunidade DevOps. Sem nem saber ou conhecer direito este modelo, o time em que eu trabalhava já havia começado a estudar e experimentar algumas técnicas e métodos ágeis na operação, algo inovador dentro do governo brasileiro e principalmente inovador para a organização que havia nos contratado.

Marco Zero

Naquela época trabalhei em um time fantástico, pude aprender muito com profissionais experientes como Fernando Ike (@fernandoike), José Eufrásio Júnior (@coredump), Daniel Capó Sobral (@dcsobral), Daniel Negri (@danielnegri), Douglas Andrade (@douglasandrade) dentre outros.

Nós estudávamos constantemente, estávamos sempre experimentando e compartilhando experiências dentro e fora dos times. O @FernandoIke trabalhava na integração de todos os times de TI da organização, focando na comunicação, no compartilhamento de responsabilidades, na garantia de entrega e na disponibilidade de recursos para o time devel trabalhar traquilo e entregar o que o cliente precisava. Ele era o escudo da TI e nos ajudava a manter o foco. O @Coredump era o líder do time de infra, seu foco era inovação e autonomia, graças a ele nosso time começou a estudar automação de infraestrutura no final de 2010, testamos e usamos ali versões primitivas do Puppet e Chef. No final dos testes acabamos optando pelo Puppet e fizemos a primeira implantação em escala de centenas de nós no governo brasileiro.

Em 2010 nós já estávamos trabalhando com infraestrutura como código, gerência de configuração, orquestração, pipeline de deploys e métricas avançadas, respirávamos inovação dia-a-dia, e tudo isso foi construído em uma curta janela de um ano e meio.

 Foi um período fantástico da minha vida em que aprendi muito com todo o time.

Após a conclusão do projeto, cada um seguiu um rumo diferente , alguns foram morar no exterior, outros mudaram de área, outros se tornaram empresários, a vida seguiu seus rumos. Acredito que aquela experiência marcou todos daquele time, no meu caso foi um divisor claro, eu era um sysadmin artesão e comecei a dar os primeiros passos para um modelo de trabalho mais eficiente e autônomo.

Novos caminhos, novas parcerias

Alguns anos depois desta experiência, no início de 2014, depois de muitas aventuras pelo Governo Federal, eu conheci pessoalmente o Miguel Di Ciurcio Filho (@mciurcio), outro desses profissionais que pensam bem a frente do seu tempo. Enquanto eu desbravava datacenters na esplanada dos ministérios entre 2010 e 2014, na mesma época Miguel atuava com startups e incubadoras na região de Campinas e Barueri no estado de São Paulo. Ele trabalhou com tecnologias modernas e inovadoras na área de automação, banco de dados e virtualização. Sua experiência com desenvolvimento, em especial no Google Summer of Code, no qual ele atuou com o projeto QEMU, lhe deram um olhar único relativo a administração e gestão de infraestrutura de TI das organizações em que passou.

Todos esses caminhos , interesses comuns, a participação nas mesmas comunidades, os projetos que acompanhamos, tudo isto foi importante para o início de nossa parceria na Instruct, empresa que ele fundou em 2011 e empresa na qual faço parte desde 2014 após o seu convite.

Trabalhando com ele o espaço e o alcance que tive para estudar e aprimorar este modelo - dentro da Instruct - foi inimaginável, afinal, ambos tivemos experiências muito parecidas, seguimos escolas similares como sysadmins e através da Instruct encontramos as empresas que podiam se beneficiar da soma de nossas experiências.

De lá para cá temos construído e evoluído juntos essa abordagem da infra ágil que organizamos no site infraagil.io.

Não estamos mais sozinhos neste projeto, nós convidamos alguns parceiros que tem nos ajudado (Alliance Members) a organizar e melhorar esse modelo. O objetivo é fazer com o modelo cresça e alcance aqueles profissionais que precisam de uma referência clara para começar a transformar seus times e sua infraestrutura.

[s]
Guto

Puppet Fundamentals em Sampa

Passando para informar a galera que restam poucas vagas para o Puppet Fundamentals de SP que vai acontecer de 02 a 04 de Agosto em São Paulo.

Esse vai esgotar rápido, corre que ainda dá tempo!

http://instruct.com.br/treinamentos/cadastro/

[s]
Guto

DevOpsDays POA Resumo

‪Galera o #‎DevOpsDays de ‪#‎PortoAlegre‬ foi um dos melhores eventos que participei nos últimos anos, focado, com público alinhado, tinha apenas 130 pessoas presentes, todos muito interessados, o evento manteve um alto nível em todas as suas palestras, teve humor, ignites, open spaces, fishbowl, networking e muito compartilhamento. ‪

#‎Recomendo‬

[s]
Guto