fubarhouse.golang

Rola Ansible: Go
- Instaluje język programowania Go od Google
- Konfiguracja instalacji jest całkowicie automatyczna
- Można ręcznie ustawić konfigurację instalacji
- Instaluje z konfigurowalnego lustra
- Opcjonalnie czyści Twój
$GOPATH
, kiedy tego potrzebujesz. - Instaluje opcjonalne pakiety za pomocą
go get
i/lubgo install
.
Wymagania
Żadne.
Zmienne roli
Konfiguracja instalacji
go_custom_mirror: https://storage.googleapis.com/golang
Podstawowa konfiguracja
go_version: 1.10beta2
GOPATH: /home/vagrant/go
GOROOT: /usr/local/go
GOPROXY: https://proxy.golang.org
Opcjonalna konfiguracja
GO111MODULE: "on" # Musi być w formie string, a nie on/off, co będzie traktowane jako boolean.
GOOS: darwin
GOARCH: amd64
go_checksum: sha256:82628a1a42d7ad88b100d0c4c9c0282a7e008e4eb73876bed4bd61ac4ee11b46
Budowanie ze źródła
Workspace bootstrapowy dla Golang
GOROOT_BOOTSTRAP: /home/vagrant/go1.4
Boolean do wskazania, że budowa powinna być prowadzona ze źródła.
build_go_from_source: false
Boolean do wskazania, że bootstrap wymaga instalacji.
install_go_bootstrap: false
Jaki skrypt ma być użyty podczas budowy ze źródła
go_build_script: make.bash
Aby zainstalować binaria/projekty go get
, dodaj je do go_get
z odpowiednią konfiguracją modułów. Nie określając wartości dla modules
, instalacja przyjmie wartość GO111MODULE
.
Domyślna konfiguracja bez konfiguracji modułów:
go_get:
- name: golint
url: github.com/golang/lint/golint
Konfiguracja z wyłączonymi modułami:
go_get:
- name: dvm
url: github.com/fubarhouse/dvm
modules: false
Konfiguracja z włączonymi modułami:
go_get:
- name: gopm
url: github.com/gpmgo/gopm
modules: true
Możesz również ręcznie sklonować i pobrać konkretne wersje pakietów, co nie obejmuje pobrania żadnych zależności.
Było to konieczne, aby zainstalować konkretne wersje oprogramowania napisanego w Go, a język nie oferuje w tej chwili alternatywy.
Zaleca się uruchamianie tego playbooka tak często, jak to konieczne, aż do uzyskania sukcesu i korzystanie z go_reget
w połączeniu z tą funkcją, lub unikanie korzystania z tej funkcji, chyba że jest to absolutnie konieczne.
go_install:
# repo to adres URL git clone, ssh lub https.
- repo: https://github.com/fubarhouse/dvm.git
# dest to przestrzeń nazw
dest: github.com/fubarhouse/dvm
# wersja odnosi się do tagu lub gałęzi.
version: 2.2.5
package: github.com/fubarhouse/dvm
Aby upewnić się, że wszystkie pakiety są usunięte przed uruchomieniem play, możesz użyć zmiennej go_reget:
go_reget: true
Aby dodać/zmienić absolutną ścieżkę profili powłoki do skonfigurowania, użyj golang_shell_profile
.
Jeśli nie zdefiniujesz golang_shell_profile
, funkcjonalność ta zostanie zignorowana.
golang_shell_profile: /root/.bash_profile
Aby całkowicie wyczyścić instalację przed wykonaniem roli:
go_install_clean: true
Aby zapobiec usunięciu GOPATH podczas czyszczenia
go_install_clean_full: false
Ustawianie uprawnień
Uwaga: Jeśli określisz niewystarczające uprawnienia, playbook potraktuje następujący play jako nową instalację, ponieważ nie będzie w stanie określić, jaka wersja jest zainstalowana. Aby określić uprawnienia bazy kodu, możesz ustawić:
mode_codebase: 0755
Aby określić uprawnienia workspace, możesz ustawić:
mode_workspace: 0755
Zależności
Brak.
Przykładowy Playbook
- hosts: localhost
roles:
- fubarhouse.golang
Instalacja
- Zainstaluj za pomocą
ansible-galaxy install fubarhouse.golang
- Dodaj tę rolę do swojego playbooka.
- Zmodyfikuj powyższe zmienne według potrzeb.
Licencja
MIT / BSD
Informacje o autorze
Ta rola została stworzona w 2016 roku przez Karola Hepwortha.
Obraz maskotki Go został stworzony przez Takuya Uedę. Licencjonowany na mocy licencji Creative Commons 3.0 Attributions. Ten obraz został zmniejszony do celów, ale w przeciwnym razie pozostał niezmieniony.
Installs the Go programming language from distribution, or build from source, and install desired packages to your Golang workspace!
ansible-galaxy install fubarhouse.golang