I’m not entirely sure I follow what you are having problems with, so I may only be able to really answer #1 right now.
{{instance}} is provided on the command line in that example with “-e instance=prod-web-server-78a” That is where the variable comes from.
This is a little different from Rackspace, in that all instances already have names, so there is no need to specifically target a tag/meta item (although you could) to reach a server. You can simply use the actual name you have given an instance. When you create an instance via the rax module, there is an explicit ‘name’ parameter.
So maybe instead of “hosts: tag_name_{{instance}}” you could just do “hosts: {{instance}}” where instance is the actual name of the instance.
Does this answer your questions?
Also, for Rackspace, there is a rax_facts module, and a rax.py inventory script. The rax_facts module works slightly different than the ec2_facts, so make sure you check the documentaiton.