Home > docs > getting started > Node Roster
Node Roster is an optional feature of Concord. It collects Ansible deployment data which is exposed via the API and a flow task.
Node Roster requires a minimum Ansible Plugin version of 1.38.0. No further configuration is required for usage.
nodeRoster
task.Node Roster supports the following Ansible modules:
Future versions will further extend this list.
A simple example of a flow and a playbook that downloads a remote file and puts it onto the remote host’s directory.
The flow:
# concord.yml
configuration:
dependencies:
- "mvn://com.walmartlabs.concord.plugins.basic:ansible-tasks:1.72.0"
flows:
default:
- task: ansible
in:
playbook: playbook.yml
inventory:
myHosts:
hosts:
- "myhost.example.com"
vars:
ansible_connection: "local" # just for example purposes, don't actually connect
extraVars:
artifactDest: "${workDir}"
The playbook:
# playbook.yml
---
- hosts: myHosts
tasks:
- get_url:
url: "http://central.maven.org/maven2/com/walmartlabs/concord/concord-cli/1.72.0/concord-cli-1.72.0-executable.jar"
dest: "{{ artifactDest }}"
To run the example, either put it into a Git repository and follow
the Quick Start guide or start it using curl
(in the directory with
concord.yml
and playbook.yml
):
$ curl -i -u CONCORD_USER \
-F concord.yml=@concord.yml \
-F playbook.yml=@playbook.yml \
https://concord.example.com/api/v1/process
Open the Concord UI to check the process status. After the process finishes, try one of the Node Roster endpoints:
$ curl -i -u CONCORD_USER https://concord.example.com/api/v1/noderoster/artifacts?hostName=myhost.example.com
HTTP/1.1 200 OK
...
[ {
"url" : "http://central.maven.org/maven2/com/walmartlabs/concord/concord-cli/1.72.0/concord-cli-1.72.0-executable.jar"
} ]
The API endpoint in the example returns a list of artifacts that were deployed to the specified host. Check the API documentation for the complete list of endpoints.