golang
Ansible Роль: Go
- Устанавливает язык программирования Go от Google
- Конфигурации установки полностью автоматические
- Конфигурации установки можно настроить вручную
- Установка производится с настраиваемого зеркала
- По желанию очищает ваш
$GOPATH
, когда это необходимо - Устанавливает дополнительные пакеты с помощью
go get
и/илиgo install
.
Требования
Нет.
Переменные роли
Конфигурация установки
go_custom_mirror: https://storage.googleapis.com/golang
Базовая конфигурация
go_version: 1.10beta2
GOPATH: /home/vagrant/go
GOROOT: /usr/local/go
GOPROXY: https://proxy.golang.org
Дополнительная конфигурация
GO111MODULE: "on" # Должно быть строкой, а не значением включения/выключения, которое будет трактоваться как логическое значение.
GOOS: darwin
GOARCH: amd64
go_checksum: sha256:82628a1a42d7ad88b100d0c4c9c0282a7e008e4eb73876bed4bd61ac4ee11b46
Сборка из исходников
Рабочее пространство Golang для загрузки
GOROOT_BOOTSTRAP: /home/vagrant/go1.4
Логическое значение для указания, что сборка должна производиться из исходников.
build_go_from_source: false
Логическое значение для указания, нужна ли установка загрузчика.
install_go_bootstrap: false
Какой скрипт следует использовать при сборке из исходников
go_build_script: make.bash
Чтобы установить бинарные файлы/проекты с помощью go get
, добавьте их в go_get
с любой нужной конфигурацией модулей. Не указывая значение для modules
, установка будет считать значение GO111MODULE
.
Конфигурация по умолчанию без конфигурации модулей:
go_get:
- name: golint
url: github.com/golang/lint/golint
Конфигурация с отключенными модулями:
go_get:
- name: dvm
url: github.com/fubarhouse/dvm
modules: false
Конфигурация с включенными модулями:
go_get:
- name: gopm
url: github.com/gpmgo/gopm
modules: true
Вы также можете вручную клонировать и получать конкретные версии пакетов, что не включает загрузку зависимостей.
Это необходимо для установки конкретных версий программного обеспечения на Go, и на данный момент язык не предоставляет альтернатив.
Рекомендуется запускать этот плейбук столько раз, сколько необходимо, пока вы не получите успешный результат, и использовать go_reget
вместе с этой функцией, или не использовать эту функцию, если это абсолютно не нужно.
go_install:
# repo — это url для git клона, ssh или https.
- repo: https://github.com/fubarhouse/dvm.git
# dest — это пространство имен
dest: github.com/fubarhouse/dvm
# version относится к тегу или ветке.
version: 2.2.5
package: github.com/fubarhouse/dvm
Чтобы убедиться, что все пакеты удалены перед запуском плей, вы можете использовать переменную go_reget:
go_reget: true
Чтобы добавить/изменить абсолютный путь к профилям оболочки для настройки, используйте golang_shell_profile
.
Если вы не определили golang_shell_profile
, функциональность будет проигнорирована.
golang_shell_profile: /root/.bash_profile
Чтобы полностью очистить установку перед выполнением роли:
go_install_clean: true
Чтобы предотвратить очистку от удаления GOPATH
go_install_clean_full: false
Установка прав
Примечание: Если вы укажете недостаточные права, плейбук будет считать следующий плей новой установкой, так как не сможет определить, какая версия установлена. Чтобы указать права кодовой базы, вы можете установить:
mode_codebase: 0755
Чтобы указать права рабочего пространства, вы можете установить:
mode_workspace: 0755
Зависимости
Нет.
Пример плейбука
- hosts: localhost
roles:
- fubarhouse.golang
Установка
- Установите с помощью
ansible-galaxy install fubarhouse.golang
- Добавьте эту роль в свой плейбук.
- Измените вышеуказанные переменные по вашему усмотрению.
Лицензия
MIT / BSD
Информация об авторе
Эта роль была создана в 2016 году Карлом Хепвортом.
Изображение маскота Go было создано Такуей Уэдой. Лицензировано по лицензии Creative Commons 3.0 Attribution. Это изображение было изменено по размеру, но в остальном осталось без изменений.
Installs the Go programming language from distribution, or build from source, and install desired packages to your Golang workspace!
ansible-galaxy install fubarhouse/ansible-role-golang