Using the inventory, vars & playbooks either already contained in this folder or generated by Terraform, we are able to execute commands on all the SDKPerf Broker nodes.
There are 2 subdirectories in this repository:
This path will be used to store the Ansible Inventory files.
- Terraform will generate an inventory file for the SDKPerf QConsumer nodes at ./inventory/sdkperf-consumer-nodes.inventory
- ./inventory/sdkperf-general.yaml.EDIT-ME should be copied to
./inventory/sdkperf-general.yaml
. This file contains variables that are common to both SDKPerf publishers and consumers. Update the file with the appropriate details. - ./inventory/sdkperf-publisher-nodes.yaml.EDIT-ME should be copied to
./inventory/sdkperf-publisher-nodes.yaml
. This file contains the IP and user to use for the ansible playbooks.
This path already contains Ansible playbooks & variable files, but some other required files will get created by Terraform.
There are 2 folders inside playbooks:
- sdkperf - Here are contained the static playbooks for running the sdkperf commands (ex: stop-sdkperf.yml).
- bootstrap - This folder contains the playbooks, variables & roles required for configuring the SDKPerf & Solace Brokers nodes
Start the C# SDKPerf queue consumers using this command:
ansible-playbook -i ./ansible/inventory/sdkperf-general.yaml -i ./ansible/inventory/sdkperf-consumer-nodes.inventory --private-key ./keys/aws_key ./ansible/playbooks/sdkperf/sdkperf-qcon.yml
Bootstrap & Start the C# SDKPerf message publishers:
- Bootstrap with SDKPerf Resources:
ansible-playbook -i ./ansible/inventory/sdkperf-general.yaml -i ./ansible/inventory/sdkperf-publisher-nodes.yaml --private-key <path_to_key_for_publisher_node> ./ansible/playbooks/bootstrap/aws-sdkperf-centosnodes.yml
- Start Publisher
ansible-playbook -i ./ansible/inventory/sdkperf-general.yaml -i ./ansible/inventory/sdkperf-publisher-nodes.yaml --private-key <path_to_key_for_publisher_node> ./ansible/playbooks/sdkperf/sdkperf-pub.yml
Stop all Consumers & Producers using this command:
- Stop Publishers:
ansible-playbook -i ./ansible/inventory/sdkperf-general.yaml -i ./ansible/inventory/sdkperf-publisher-nodes.yaml --private-key <path_to_key_for_publisher_node> ./ansible/playbooks/sdkperf/stop-sdkperf.yml
- Stop Consumers:
ansible-playbook -i ./ansible/inventory/sdkperf-general.yaml -i ./ansible/inventory/sdkperf-consumer-nodes.inventory --private-key ./keys/aws-key ./ansible/playbooks/sdkperf/stop-sdkperf.yml
ℹ️ If running the commands while inside the main Repo folder (/)
- Remove SDKPerf resources from publisher node
ansible-playbook -i ./ansible/inventory/sdkperf-general.yaml -i ./ansible/inventory/sdkperf-publisher-nodes.yaml --private-key <path_to_key_for_publisher_node> ./ansible/playbooks/sdkperf/sdkperf-cleanup.yml
ℹ️ Use Terraform commands to destroy SDKPerf Consumer Node resources.