67 lines
1.5 KiB
YAML
67 lines
1.5 KiB
YAML
---
|
|
version: '3'
|
|
|
|
vars:
|
|
ANSIBLE_VENV:
|
|
sh: echo "$HOME/.local/megabytelabs/ansible"
|
|
|
|
tasks:
|
|
install:ansible:
|
|
cmds:
|
|
- pip3 install ansible
|
|
|
|
main:
|
|
deps:
|
|
- install:ansible
|
|
cmds:
|
|
- task: requirements
|
|
|
|
requirements:
|
|
deps:
|
|
- requirements:galaxy
|
|
- requirements:python
|
|
|
|
requirements:galaxy:
|
|
cmds:
|
|
- |
|
|
PATH="$PATH:$HOME/.local/bin"
|
|
ansible-galaxy install -r requirements.yml
|
|
status:
|
|
- '[ ! -f requirements.yml ]'
|
|
|
|
requirements:python:
|
|
cmds:
|
|
- pip3 install requirements.txt
|
|
status:
|
|
- '[ ! -f requirements.txt ]'
|
|
|
|
role:
|
|
deps:
|
|
- :install:software:docker
|
|
desc: Install an Ansible role by using Docker
|
|
summary: |
|
|
# Install an Ansible Role
|
|
|
|
This task installs a single Ansible role on the localhost. It
|
|
will download the role from Ansible Galaxy and then provision
|
|
the localhost using a Docker container (so that Ansible dependencies
|
|
are not permanently installed).
|
|
|
|
**Example:**
|
|
`task install:ansible:role -- professormanhattan/androidstudio
|
|
cmds:
|
|
- |
|
|
if [ -d ~/.ansible/roles/{{.CLI_ARGS}} ]; then
|
|
rm -rf ~/.ansible/roles/{{.CLI_ARGS}}
|
|
fi
|
|
- ansible-galaxy install --force --ignore-errors professormanhattan.androidstudio
|
|
- echo "TODO - run Docker and provision"
|
|
|
|
start:
|
|
deps:
|
|
- :install:software:python
|
|
cmds:
|
|
- python3 -m venv {{.ANSIBLE_VENV}}
|
|
- |
|
|
source {{.ANSIBLE_VENV}}/bin/activate
|
|
task install:ansible:main
|