Update repository meta data
Update dependencies Add precommit config Add readme notes
This commit is contained in:
parent
5a48dc5a61
commit
1e1d4d75a0
28
.pre-commit-config.yaml
Normal file
28
.pre-commit-config.yaml
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
---
|
||||||
|
# All of the pre-commit hooks here actually use the `pytyhon` pre-commit language
|
||||||
|
# setting. However, for the python language setting, pre-commit will create and manage
|
||||||
|
# a cached virtual environment for each hook ID and do a bare `pip install <repo>` into
|
||||||
|
# the venv to setup the hook. This can result in conflicting dependency versions between
|
||||||
|
# the version installed to the pre-commit venv and the version installed to the Poetry
|
||||||
|
# venv specified in the lockfile.
|
||||||
|
#
|
||||||
|
# The solution is to specify `language: system` for all hooks and then install the
|
||||||
|
# required dependencies to the Poetry venv. The `system` language skips the isolated
|
||||||
|
# venv creation and looks for the entrypoint specified by the hook in the global
|
||||||
|
# environment which, if running in the Poetry venv, will find the entrypoint provided
|
||||||
|
# by the Poetry-managed dependency.
|
||||||
|
#
|
||||||
|
repos:
|
||||||
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
|
rev: v3.3.0
|
||||||
|
hooks:
|
||||||
|
- id: end-of-file-fixer
|
||||||
|
language: system
|
||||||
|
- id: fix-encoding-pragma
|
||||||
|
args:
|
||||||
|
- "--remove"
|
||||||
|
language: system
|
||||||
|
- id: trailing-whitespace
|
||||||
|
language: system
|
||||||
|
- id: check-merge-conflict
|
||||||
|
language: system
|
39
README.md
39
README.md
@ -3,6 +3,39 @@
|
|||||||
Network Ansible configurations
|
Network Ansible configurations
|
||||||
|
|
||||||
* The `omni_*` prefix is used for custom variables defined and used internally to
|
* The `omni_*` prefix is used for custom variables defined and used internally to
|
||||||
distinguish them from `ansible_*` or other variables
|
distinguish them from `ansible_*` or other variables. The `_runtime_` prefix should
|
||||||
* Roles: things machines do. Tasks: how those things are done. Platform compatibility
|
be used for runtime variables
|
||||||
should be handled in tasks. Config logic should be handled in roles.
|
* Passing `clean=true` should force cleaning any and all cached stuff
|
||||||
|
* Passing `update=true` should update any unpinned _things_ to their latest version
|
||||||
|
|
||||||
|
Organizational notes:
|
||||||
|
|
||||||
|
* Playbooks should be platform/device agnostic. Any playbook should be runnable against
|
||||||
|
any device. If the config a playbook deploys isn't applicable to that device then the
|
||||||
|
playbook should be laid out so that it skips any inapplicable hosts.
|
||||||
|
* Building from that, platform-conditionals should go in task files: `when` conditions
|
||||||
|
in playbooks should be limited to runtime conditions.
|
||||||
|
|
||||||
|
Target notes:
|
||||||
|
|
||||||
|
* The `'mgmt'` target grants remote management access. This usually means SSH + local
|
||||||
|
login access, but can also mean web interface (cockpit, erx, etc)
|
||||||
|
|
||||||
|
General workflow:
|
||||||
|
|
||||||
|
1. Run `provision.yml` - this gets the entire environment into a ready-to-go state but
|
||||||
|
does not deploy any actual applications or perform any target tasks
|
||||||
|
2. Run one or more `deploy-*.yml` - this deploys the application noted to the system
|
||||||
|
3. Run one or more `do-*.yml` - this performs one off tasks
|
||||||
|
|
||||||
|
## local env creation
|
||||||
|
|
||||||
|
Requires Poetry-1.1+
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://vcs.enp.one/omni/omni-ansible.git
|
||||||
|
|
||||||
|
cd omni-ansible/
|
||||||
|
|
||||||
|
poetry install
|
||||||
|
```
|
||||||
|
1442
poetry.lock
generated
1442
poetry.lock
generated
File diff suppressed because it is too large
Load Diff
@ -2,22 +2,22 @@
|
|||||||
name = "omni-ansible"
|
name = "omni-ansible"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
description = "Network deployment procedures and configuration state"
|
description = "Network deployment procedures and configuration state"
|
||||||
authors = ["Ethan Paul <e@enp.one>"]
|
authors = ["Ethan Paul <me@enp.one>"]
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
|
|
||||||
[tool.poetry.dependencies]
|
[tool.poetry.dependencies]
|
||||||
python = "^3.7"
|
python = "^3.7"
|
||||||
ansible = "^2.9.4"
|
ansible = "^2.9.4"
|
||||||
paramiko = "^2.7.1"
|
|
||||||
jinja2 = "^2.11.1"
|
|
||||||
docker = "^4.2.0"
|
docker = "^4.2.0"
|
||||||
docker-compose = "^1.25.4"
|
docker-compose = "^1.25.4"
|
||||||
|
paramiko = "^2.7.1"
|
||||||
|
|
||||||
[tool.poetry.dev-dependencies]
|
[tool.poetry.dev-dependencies]
|
||||||
ansible-lint = "^4.2.0"
|
ansible-lint = "^4.2.0"
|
||||||
yamllint = "^1.20.0"
|
|
||||||
ansible-toolbox = "^0.3"
|
ansible-toolbox = "^0.3"
|
||||||
|
pre-commit = "^2.9.2"
|
||||||
[build-system]
|
pre-commit-hooks = "^3.3.0"
|
||||||
requires = ["poetry>=1.0.0"]
|
safety = "^1.9.0"
|
||||||
build-backend = "poetry.masonry.api"
|
tox = "^3.20.1"
|
||||||
|
tox-poetry-installer = "^0.5.2"
|
||||||
|
yamllint = "^1.20.0"
|
||||||
|
Reference in New Issue
Block a user