Concrete Logo
Hamburger button

Chocolatey: O que é e como usar

  • Blog
  • 14 de Maio de 2018

Eu sei que a Páscoa já passou, mas vamos falar de chocolate? Não o de comer, vamos falar de uma ferramenta que facilita a vida na hora de instalar pacotes no Windows. Pois é, agora não são só os pinguins do Linux que automatizam suas tarefas, isso também é possível no Windows, com o Chocolatey!

O que é Chocolatey?

Em resumo, é um gerenciador de pacotes para Windows. Ele foi projetado para ser uma estrutura descentralizada para instalar pacotes (aplicativos/ferramentas) mais rapidamente. É muito semelhante ao que temos no mundo Linux, citando os dois gerenciadores de pacotes mais famosos (apt e yum). O Chocolatey é construído sobre a infraestrutura do NuGet, que atualmente usa o PowerShell por debaixo do capô. Aqui tem mais detalhes sobre como a ferramenta funciona.

O nome da ferramenta veio de uma piada, porque todo mundo adora nougat Chocolate (nuget). Acabou pegando.

É uma ferramenta nova?

Na verdade, não. Já faz algum tempinho que o Chocolatey está na estrada (acredito que desde 2011), mas seu uso ainda é desconhecido ou pouco usado pela maioria das pessoas que utilizam ou trabalham com Windows.

Entretanto, a ferramenta vem crescendo e para mim algumas coisas são novidades, como as integrações com ferramentas de gerenciamento de configuração, como Ansible, Chef e Puppet. Outro ponto legal é que já existem plugins de tasks do TFS/VSTS, ambas ferramentas de automatização de build e outras coisas.

Essas ferramentas se beneficiam dos recursos do Chocolatey e deixam o processo bem tranquilo. Com tudo isso podemos provisionar um ambiente Windows inteiro a partir do zero. Chega de fazer backups de VMs e ficar cuidando que nem um filho, as VMs podem e devem ser efêmeras, assim como os containers.

O que temos no Windows hoje para automatizar?

Chega de … Next Next Next Finish!

Como é um setup de um banco de dados Mysql no Windows.

A interface gráfica é muito intuitiva e fácil de usar, mas quando queremos automatizar processos e tarefas isso vira um problema! Ninguém vai ficar apertando os botões…

No Linux temos os gerenciadores de pacotes “apt-get” para as distros baseadas em Debian e o “yum” para versões baseadas em Redhat. Em um cenário em que precisamos instalar uma série de pacotes e dependências, os gerenciadores de pacote deixam o processo muito mais rápido e fácil! Node, Java ou o próprio Docker, por exemplo, são pacotes que geralmente instalamos para começar a desenvolver software.

Lembrando que aqui estamos falando de automatização de programas e pacotes, muitas vezes necessários para rodar um determinado código, aplicação ou projeto.

O Chocolatey veio para resolver exatamente esse problema, instalar pacotes de forma rápida e fácil com uma CLI muito semelhante aos dois gerenciadores mencionados acima. Mas antes de ver os exemplos vamos instalar a ferramenta na nossa máquina e ver se esse chocolate é doce mesmo ou é amargo =)

Instalação do Chocolatey

Vamos seguir a orientação da documentação oficial. Como está bem explicadinho, não vou reproduzir o passo a passo aqui, ok?

Obs: Para instalar por meio do cmd, abra uma janela como administrador. O acesso a administrador também é necessário para instalar os pacotes com o Chocolatey, nos exemplos que vamos dar mais para a frente.

Com isso em mente (CMD em modo admin), podemos executar o comando:

O que esse comando faz é instalar um determinado pacote. Quer ver um exemplo mais palpável? Vamos instalar o Docker, caso você ainda não tenha instalado na sua máquina. Veja como é fácil instalar um pacote com o Choco.

Legal, mas e se eu não souber o nome do pacote? Como faço?

Podemos procurar os pacotes pelo site do Chocolatey e buscar pelo nome do pacote que queremos instalar. A página mostra qual a linha de comando que devemos utilizar para instalar o pacote.

Também podemos fazer a busca por linha de comando:

O legal é que podemos fazer múltiplas instalações:

E para desinstalar os pacotes é bem simples, não tem mistério nenhum:

E para listar os pacotes que foram instalados no computador via choco? É só digitar:

Exemplo:

Para listar todos os pacotes disponíveis pode demora um pouquinho dependendo da quantidade disponível no repositório do Chocolatey. Mas é só digitar o comando:

Eu rodei o comando e deu 3009 pacotes encontrados. Demorou uns cinco minutos.

Exemplo prático

Para quem está começando a brincar com o Kubernetes e quer rodar um cluster local na máquina com Windows, tem o pacote do Minikube disponível. Para instalar:

Para atualizar a versão:

Obs: Vamos precisar do Kubectl para interagir com a API do Kubernetes.

Pronto! Você já tem um cluster Kubernetes instalado na sua máquina Windows. Agora pode abrir um sorriso =)

Obs: é necessário o VirtualBox ou Hyperv para o Minikube funcionar!

O que mais posso instalar com o Chocolatey?

Basicamente qualquer coisa. Neste outro exemplo vou instalar algumas ferramentas que que são bastante utilizadas pelos administradores Linux, e que usamos bastante no dia a dia: Wget, Curl e o editor Vim.

Obs: Caso alguns destes pacotes já tenha sido instalado na máquina, rode com a flag –force.

Chocolatey para desenvolvedores

O Chocolatey é uma ótima ferramenta para Dev e Ops que utilizam Windows no dia a dia, pois facilita a instalação de diversos programas essenciais para quem desenvolve. Dá uma olhada nessa lista:

  • Git;
  • Visualstudiocode (queridinho da galera);
  • NodeJS;
  • Atom;
  • SublimeText;
  • Ruby;
  • Vim;
  • Python;
  • Docker;
  • Java.

E tem muito mais! Isso é só a pontinha do Iceberg.

Interface gráfica

Se você gosta de usar interface gráfica, mas não quer perder os benefícios do Chocolatey, podemos resolver isso utilizando o próprio choco, instalando o pacote ChocolateyGUI:

Depois disso o Chocolatey GUI estará disponível no menu iniciar do Windows.

Com isso podemos interagir com o Chocolatey por essa interface. Legal, né?

O que mais posso fazer?

  • Criar seu próprios pacotes Chocolatey;
  • Hospedar seu próprio servidor de repositório de pacotes;
  • E usar o Chocolatey sem custos. A versão gratuita possui muitos recursos.

Se você ainda tem dúvidas sobre como e por que usar essa ferramenta você deve ter algumas respostas aqui. Ficou
alguma dúvida ou tem algo a dizer? Aproveite os campos abaixo. Até a próxima!

Aqui na Concrete, o capítulo de DevOps é o motor para a agilidade dos times, responsável por pensar estrategicamente na estrutura e arquitetura final, garantindo a qualidade. Justamente por automatizar processos e melhorar o desempenho do time de desenvolvimento, nossos “DevOps” trabalham desde o início da criação dos produtos, implementando processos de integração e entrega contínua, utilizando servidores de CI, repositórios de código, scripts de automatização e relatórios. Quer trabalhar com os melhores? Só vem! concrete.com.br/vagas