A collection of reusable ansible components used by the EthPandaOps team.
- beaconchain_explorer_aio
- blockscout
- cl_bootnode
- dshackle
- dugtrio
- ethereum_auth_jwt
- ethereum_genesis
- ethereum_metrics_exporter
- ethstats
- goomy
- mev_boost
- mev_relay
- mev_rs
- powfaucet
- snapshotter
- xatu_sentry
- bootstrap
- docker_cleanup
- docker_network
- docker_nginx_proxy
- firewall
- json_rpc_snooper
- k3s
- litestream
- logsprout
- oh_my_zsh
- prometheus
- s3_cron_backup
- traffic_control
- vector
Currently we're not publishing the collection to Ansible Galaxy. We'll do that once it grows bigger.
To install the collection directly from our git repository you can do the following:
ansible-galaxy collection install git+https://github.com/ethpandaops/ansible-collection-general.git,master
Or using a requirements.yml
file that looks like:
collections:
- name: ethpandaops.general
source: https://github.com/ethpandaops/ansible-collection-general.git,master
type: git
Then run the following command:
ansible-galaxy install -r requirements.yml
Clone the repository. Make sure that you follow that directory structure, otherwise ansible test
won't work:
git clone git@github.com:ethpandaops/ansible-collection-general.git ansible_collections/ethpandaops/general
If you want to test and develop on this ansible collection you'll need some tools. We're using asdf
to commit to certain versions of those tools. Some additional python specific tools are defined in the requirements.txt
.
Make sure you have asdf
installed and then you can run the ./setup.sh
script which will install all required tools.
For linting and sanity checks you can run the following commands:
ansible-lint
ansible-test sanity
Some roles have molecule tests inside. You can check this if a role has a molecule
directory within. To run molecule ona given role you can do the following:
cd roles/blockscout
molecule test
If you want to test the ethereum_node
role with molecule, you can pass it the specific execution and consensus clients via ENV vars:
cd roles/ethereum_node
EXECUTION_CLIENT=geth CONSENSUS_CLIENT=lighthouse molecule test