fbpx
Instalação Offline do Chocolatey
Publicado em: domingo, 25 de maio de 2014
Categorias: Desenvolvimento

Olá, como vai você?

Por aqui as coisas andam bem agitadas! Mas estão bem. Estou muito empolgado com o projeto que estou para lançar, falamos nisso depois.
Hoje vou falar do Chocolatey, diferente do material que se encontra por aí, vou ser um pouco mais objetivo. Vou falar em como instalá-lo em sua infra, quando sua máquina não possui acesso à internet. É o caso de servidores.

Desde o post Coisas úteis que um dev nunca deve deixar de ter, quando me deparei com o Chocolatey e foi paixão à primeira vista. Vale a pena dar uma olhada nesse projeto.

Bom, no meu cenário, minhas aplicações são pacotes chocolatey, hospedadas em um repositório privado, dentro da minha rede, portanto faz todo sentido esse post!

A instalação padrão

Logo no site, você encontra o comando padrão para a instalação

c:> @powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%systemdrive%chocolateybin

Com esse comando, o script install.ps1 realiza todas as operações necessárias para o setup. Desde o download até a configuração de todo o ambiente.

Fazendo download do script, você verá que ele realiza apenas 2 downloads:

...
# variables
$url = "http://chocolatey.org/api/v2/package/chocolatey/"
...
$file = Join-Path $tempDir "chocolatey.zip"
...
Download-File $url $file
...
$7zaExe = Join-Path $tempDir '7za.exe'
...
Download-File 'http://chocolatey.org/7za.exe' "$7zaExe"

Bom, todo o resto acontece local, é sob essas premissas que vamos brincar com o powershell e com o chocolatey hoje!hero[1]

 

A instalação desconectada

Vamos hospedar os instaladores em um servidor HTTP e fazer uma ligeira modificação no script install.ps1

Preparando a hospedagem da instalação do Chocolatey

Faça download dos pacotes necessários para um servidor HTTP cuja máquina de destino (para instalação do chocolatey) possua conectividade.

No servidor HTTP, execute o comando abaixo no PowerShell

function Download-File {
param (
  [string]$url,
  [string]$file
 )
  Write-Host "Downloading $url to $file"
  $downloader = new-object System.Net.WebClient
  $downloader.DownloadFile($url, $file)
}

$url = "http://chocolatey.org/7za.exe"
$file = "C:inetpubwwwroot7za.exe"
Download-File $url $file


$url = "http://chocolatey.org/api/v2/package/chocolatey/"
$file = "C:inetpubwwwrootchocolatey.zip"
Download-File $url $file

Agora no root do seu default website do IIS, você terá 2 novos arquivos: chocolatey.zip e 7za.exe

Modificando o Script install.ps1

Baixe o arquivo install.ps1 e faça 2 replaces:

De
http://chocolatey.org/api/v2/package/chocolatey/
por
http://IPouNomeDoServidor/chocolatey.zip

e

De
http://chocolatey.org/7za.exe
Por
http://IPouNomeDoServidor/7za.exe

Finalizado!

Execute sua versão do install.ps1

Agora execute sua versão do install.ps1 nos servidores que precisa instalar o Chocolatey e seja feliz!

Muito obrigado pela visita e até mais!

[default]

2 Comentários

  1. Beatrice

    “Fazendo download do script, você verá que ele realiza apenas 2 downloads:” Como você fez o download do script do comando que você tinha feito com choco?

    Responder
    • Luiz Carlos Faria

      A linha que antecede esse explicação é um script. Que se você ler com cuidado vai ver que trata-se, entre outras coisas, de um download de um script .ps1 (https://chocolatey.org/install.ps1).

      Daí pra frente, é entender o que o script faz.

      Responder

Enviar um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

[special-full-page]

Lives

Fique de olho nas lives

Fique de olho nas lives no meu canal do Youtube, no Canal .NET e nos Grupos do Facebook e Instagram.

Aceleradores

Existem diversas formas de viabilizar o suporte ao teu projeto. Seja com os treinamentos, consultoria, mentorias em grupo.