fubarhouse.golang

Rôle Ansible : Go
- Installe le langage de programmation Go de Google
- Les configurations d'installation sont entièrement automatiques
- Les configurations d'installation peuvent être définies manuellement
- Installation à partir d'un miroir configurable
- Nettoie en option votre
$GOPATH
quand vous le souhaitez - Installe des paquets optionnels en utilisant
go get
et/ougo install
.
Exigences
Aucune.
Variables du rôle
Configuration d'installation
go_custom_mirror: https://storage.googleapis.com/golang
Configuration de base
go_version: 1.10beta2
GOPATH: /home/vagrant/go
GOROOT: /usr/local/go
GOPROXY: https://proxy.golang.org
Configuration optionnelle
GO111MODULE: "on" # Doit être de type chaîne, pas on/off qui sera traité comme un booléen.
GOOS: darwin
GOARCH: amd64
go_checksum: sha256:82628a1a42d7ad88b100d0c4c9c0282a7e008e4eb73876bed4bd61ac4ee11b46
Compilation depuis la source
Espace de travail de bootstrap Golang
GOROOT_BOOTSTRAP: /home/vagrant/go1.4
Boolean pour indiquer si la construction doit être faite à partir de la source.
build_go_from_source: false
Boolean pour indiquer si le Bootstrap doit être installé.
install_go_bootstrap: false
Quel script doit être utilisé lors de la compilation depuis la source
go_build_script: make.bash
Pour installer des projets binaires avec go get
, ajoutez-les à go_get
avec toute configuration de modules souhaitée. En ne spécifiant pas de valeur pour modules
, l'installation prendra la valeur de GO111MODULE
.
Configuration par défaut sans configuration de modules:
go_get:
- name: golint
url: github.com/golang/lint/golint
Configuration avec modules désactivés:
go_get:
- name: dvm
url: github.com/fubarhouse/dvm
modules: false
Configuration avec modules activés:
go_get:
- name: gopm
url: github.com/gpmgo/gopm
modules: true
Vous pouvez également cloner manuellement et obtenir des versions spécifiques de paquets, ce qui n'inclut pas le téléchargement de dépendances.
Ceci a été nécessaire pour installer des versions spécifiques de logiciels écrits en Go, et à l'heure actuelle, le langage ne fournit pas d'alternative.
Il est fortement recommandé de lancer ce playbook autant de fois que nécessaire jusqu'à obtenir un succès et d'utiliser go_reget
en conjonction avec cette fonctionnalité, ou de ne pas utiliser cette fonctionnalité sauf si c'est absolument nécessaire.
go_install:
# repo est l'url de clonage git, ssh ou https.
- repo: https://github.com/fubarhouse/dvm.git
# dest est le namespace
dest: github.com/fubarhouse/dvm
# version fait référence à un tag ou une branche.
version: 2.2.5
package: github.com/fubarhouse/dvm
Pour s'assurer que tous les paquets sont supprimés avant l'exécution du play, vous pouvez utiliser la variable go_reget :
go_reget: true
Pour ajouter/changer le chemin absolu des profils shell à configurer, utilisez golang_shell_profile
.
Si vous ne définissez pas golang_shell_profile
, la fonctionnalité sera ignorée.
golang_shell_profile: /root/.bash_profile
Pour nettoyer complètement une installation avant l'exécution du rôle :
go_install_clean: true
Pour empêcher le nettoyage de supprimer le GOPATH
go_install_clean_full: false
Définition des permissions
Remarque : Si vous spécifiez des permissions insuffisantes, le playbook considérera le play suivant comme une nouvelle installation car il ne pourra pas déterminer quelle version est installée. Pour spécifier les permissions de la base de code, vous pouvez définir :
mode_codebase: 0755
Pour spécifier les permissions de l'espace de travail, vous pouvez définir :
mode_workspace: 0755
Dépendances
Aucune.
Exemple de Playbook
- hosts: localhost
roles:
- fubarhouse.golang
Installation
- Installez en utilisant
ansible-galaxy install fubarhouse.golang
- Ajoutez ce rôle à votre playbook.
- Modifiez les variables ci-dessus selon vos souhaits.
Licence
MIT / BSD
Informations sur l'auteur
Ce rôle a été créé en 2016 par Karl Hepworth.
L'image de la mascotte de Go a été créée par Takuya Ueda. Licenciée sous la licence Creative Commons 3.0 Attributions. Cette image a été redimensionnée à des fins, mais est autrement inchangée.
Installs the Go programming language from distribution, or build from source, and install desired packages to your Golang workspace!
ansible-galaxy install fubarhouse.golang