fubarhouse.golang

Ansible Rolle: Go

Build Status stability-stable Ansible Galaxy MIT lizenziert

  • Installiert die Google Go Programmiersprache
  • Installationskonfigurationen sind vollständig automatisch
  • Installationskonfigurationen können manuell festgelegt werden
  • Installiert von einem konfigurierbaren Mirror
  • Reinigt optional Ihr $GOPATH, wann immer Sie möchten.
  • Installiert optionale Pakete mit go get und/oder go install.

Anforderungen

Keine.

Rollenvariablen

Installationskonfiguration

go_custom_mirror: https://storage.googleapis.com/golang

Grundkonfiguration

go_version: 1.10beta2
GOPATH: /home/vagrant/go
GOROOT: /usr/local/go
GOPROXY: https://proxy.golang.org

Optionale Konfiguration

GO111MODULE: "on" # Muss vom Typ String sein, nicht an/ausschalten, was als boolean behandelt wird.
GOOS: darwin
GOARCH: amd64
go_checksum: sha256:82628a1a42d7ad88b100d0c4c9c0282a7e008e4eb73876bed4bd61ac4ee11b46

Aus dem Quellcode bauen

Golang Bootstrap-Arbeitsbereich

GOROOT_BOOTSTRAP: /home/vagrant/go1.4

Boolean, um anzugeben, ob der Build aus dem Quellcode erfolgen soll.

build_go_from_source: false

Boolean, um anzugeben, ob Bootstrap installiert werden muss.

install_go_bootstrap: false

Welches Skript verwendet werden soll, wenn der Build aus dem Quellcode erfolgt

go_build_script: make.bash

Um go get Binaries/Projekte zu installieren, fügen Sie diese mit beliebigen Modulkonfigurationen zu go_get hinzu. Wenn kein Wert für modules angegeben wird, geht die Installation von dem Wert von GO111MODULE aus.

Standardeinstellung ohne Modulkonfiguration:

go_get:
- name: golint
  url: github.com/golang/lint/golint

Konfiguration mit deaktivierten Modulen:

go_get:
- name: dvm
  url: github.com/fubarhouse/dvm
  modules: false

Konfiguration mit aktivierten Modulen:

go_get:
- name: gopm
  url: github.com/gpmgo/gopm
  modules: true

Sie können auch manuell klonen und bestimmte Versionen von Paketen abrufen, wobei der Download von Abhängigkeiten nicht enthalten ist.

Das war notwendig, um spezifische Versionen von Software, die in Go geschrieben sind, zu installieren, und die Sprache bietet derzeit keine Alternative.

Es wird dringend empfohlen, dieses Playbook so oft auszuführen, wie Sie es benötigen, bis Sie Erfolg haben, und go_reget in Verbindung mit dieser Funktion zu verwenden, oder diese Funktion nicht zu verwenden, es sei denn, es ist absolut notwendig.

go_install:
  # repo ist die Git-Klon-URL, ssh oder https.
- repo: https://github.com/fubarhouse/dvm.git
  # dest ist der Namespace
  dest: github.com/fubarhouse/dvm
  # version bezieht sich auf ein Tag oder einen Branch.
  version: 2.2.5
  package: github.com/fubarhouse/dvm

Um sicherzustellen, dass alle Pakete vor dem Ausführen des Plays entfernt werden, können Sie die Variable go_reget verwenden:

go_reget: true

Um den absoluten Pfad von Shell-Profilen zu ändern, verwenden Sie golang_shell_profile.

Wenn Sie golang_shell_profile nicht definieren, wird die Funktionalität ignoriert.

golang_shell_profile: /root/.bash_profile

Um eine Installation vollständig vor der Rollen-Ausführung zu bereinigen:

go_install_clean: true

Um zu verhindern, dass die Bereinigung das GOPATH entfernt

go_install_clean_full: false

Berechtigungen setzen

Hinweis: Wenn Sie unzureichende Berechtigungen angeben, wird das Playbook das folgende Play als neue Installation behandeln, da es nicht bestimmen kann, welche Version installiert ist. Um die Berechtigungen des Code-Basismoduls anzugeben, können Sie setzen:

mode_codebase: 0755

Um die Berechtigungen des Arbeitsbereichs anzugeben, können Sie setzen:

mode_workspace: 0755

Abhängigkeiten

Keine.

Beispiel-Playbook

- hosts: localhost
  roles:
    - fubarhouse.golang

Installation

  • Installieren Sie mit ansible-galaxy install fubarhouse.golang
  • Fügen Sie diese Rolle in Ihr Playbook ein.
  • Ändern Sie die obigen Variablen nach Belieben.

Lizenz

MIT / BSD

Autor Informationen

Diese Rolle wurde 2016 von Karl Hepworth erstellt.

Das Bild des Go-Maskottchens wurde von Takuya Ueda erstellt. Lizenziert unter der Creative Commons 3.0 Namensnennungslizenz. Dieses Bild wurde für den Zweck verkleinert, ist aber ansonsten unverändert.

Über das Projekt

Installs the Go programming language from distribution, or build from source, and install desired packages to your Golang workspace!

Installieren
ansible-galaxy install fubarhouse.golang
Lizenz
mit
Downloads
38.8k
Besitzer
Lover of all things open source and computers - both hardware and software. My opinions are my own.