fubarhouse.golang

Rol de Ansible: Go
- Instala el lenguaje de programación Go de Google.
- Las configuraciones de instalación son completamente automáticas.
- Las configuraciones de instalación se pueden establecer manualmente.
- Se instala desde un espejo configurable.
- Opcionalmente limpia tu
$GOPATH
siempre que lo necesites. - Instala paquetes opcionales usando
go get
y/ogo install
.
Requisitos
Ninguno.
Variables de Rol
Configuración de instalación
go_custom_mirror: https://storage.googleapis.com/golang
Configuración básica
go_version: 1.10beta2
GOPATH: /home/vagrant/go
GOROOT: /usr/local/go
GOPROXY: https://proxy.golang.org
Configuración opcional
GO111MODULE: "on" # Debe ser de tipo string, no on/off que se manejará como booleano.
GOOS: darwin
GOARCH: amd64
go_checksum: sha256:82628a1a42d7ad88b100d0c4c9c0282a7e008e4eb73876bed4bd61ac4ee11b46
Construyendo desde la fuente
Espacio de trabajo de Bootstrap Golang
GOROOT_BOOTSTRAP: /home/vagrant/go1.4
Booleano para indicar que la construcción debe ser desde la fuente.
build_go_from_source: false
Booleano para indicar que Bootstrap necesita instalación.
install_go_bootstrap: false
Qué script debe usarse al construir desde la fuente
go_build_script: make.bash
Para instalar proyectos/binaros go get
, agréguelos a go_get
con cualquier configuración de módulos según desees. Si no especificas un valor para modules
, la instalación asumirá el valor de GO111MODULE
.
Configuración predeterminada sin configuración de módulos:
go_get:
- name: golint
url: github.com/golang/lint/golint
Configuración con módulos desactivados:
go_get:
- name: dvm
url: github.com/fubarhouse/dvm
modules: false
Configuración con módulos habilitados:
go_get:
- name: gopm
url: github.com/gpmgo/gopm
modules: true
También puedes clonar manualmente y obtener versiones específicas de paquetes, lo que no incluye la descarga de dependencias.
Esto se debe a la necesidad de instalar versiones específicas de software escrito en Go, y el lenguaje no proporciona ninguna alternativa en este momento.
Se recomienda ejecutar este playbook tantas veces como sea necesario hasta obtener un éxito y usar go_reget
junto con esta función, o no usar esta función a menos que sea absolutamente necesario.
go_install:
# repo es la url de git clone, ssh o https.
- repo: https://github.com/fubarhouse/dvm.git
# dest es el espacio de nombres
dest: github.com/fubarhouse/dvm
# version se refiere a una etiqueta o rama.
version: 2.2.5
package: github.com/fubarhouse/dvm
Para asegurarte de que todos los paquetes sean eliminados antes de ejecutar el play, puedes usar la variable go_reget:
go_reget: true
Para agregar/cambiar la ruta absoluta de los perfiles de shell a configurar, usa golang_shell_profile
.
Si no defines golang_shell_profile
, la funcionalidad será ignorada.
golang_shell_profile: /root/.bash_profile
Para limpiar una instalación completamente antes de la ejecución del rol:
go_install_clean: true
Para evitar que la limpieza elimine el GOPATH
go_install_clean_full: false
Estableciendo permisos
Nota: Si especificas permisos insuficientes, el playbook considerará el siguiente play como una nueva instalación porque no podrá determinar qué versión está instalada. Para especificar los permisos de la base de código, puedes establecer:
mode_codebase: 0755
Para especificar los permisos del espacio de trabajo, puedes establecer:
mode_workspace: 0755
Dependencias
Ninguna.
Ejemplo de Playbook
- hosts: localhost
roles:
- fubarhouse.golang
Instalación
- Instala usando
ansible-galaxy install fubarhouse.golang
. - Agrega este rol a tu playbook.
- Modifica las variables arriba según desees.
Licencia
MIT / BSD
Información del Autor
Este rol fue creado en 2016 por Karl Hepworth.
La imagen de la mascota de Go fue creada por Takuya Ueda. Licenciada bajo la licencia de Atribución 3.0 de Creative Commons. Esta imagen ha sido redimensionada para el propósito, pero no ha sido alterada de otra manera.
Installs the Go programming language from distribution, or build from source, and install desired packages to your Golang workspace!
ansible-galaxy install fubarhouse.golang