Let’s say we want to deploy a VCLGroup to a set of agents in the US and a set of agents in Asia. We want to use the same VCL files for all servers. This would require the following:
Let’s assume we have two agents running, the one with ID 1 runs in the US. The other with ID 2 runs in Asia. The CLI commands to achieve the above would be (for further CLI examples, see the CLI chapter).
# Create tags vcli tags add US Asia # We assume US tag got ID 1 and Asia got ID 2. We tag agent 1 with US and agent 2 with Asia. vcli agents tag 1 --tag 1 vcli agents tag 2 --tag 2 # Upload a VCL from the file my.vcl (assumed to get ID 1) vcli file add main.vcl my.vcl # Create a domain (assumed to get ID 1) vcli domains add example.com # Create a deployment for Asia and one for US vcli dep add depUS --tags 1 --max 10 vcli dep add depAsia --tags 2 --max 10 # Now create a VCLGroup to use on both regions (both agents) # Deployments 1 and 2, domain 1 and VCL 1 vcli vg add myVG --dep 1,2 --dom 1 --vcl 1 # Now deploy it vcli vg deploy 1
Creating tags and assigning them to agents is usually something you do once.
If we want to update the VCL and automatically deploy it, we can just edit the VCL:
vcli file edit 1
When saving the VCL and it compiles correctly, it will be automatically deployed to both agents since the VCLGroup itself is already deployed. It is also possible to stage the VCL change beforehand and test it out. See the staging example.
Since we specified
--max 10 for our deployments in this example the system will automatically add the VCL to all new agents
up to 10 agents if they had the correct tags that the deployment has specified. If there are 20 agents matching and one of the
used 10 agents goes down, a new randomly chosen agent will be used for deployment to fulfill the maximum of 10 agents.