Ansible - GCP动态库存&标签

时间:2017-12-29 00:03:43

标签: ansible google-cloud-platform

我刚刚开始使用ansible,并已成功配置ansible以从GCP获取动态广告资源。

我能够针对所有实例成功运行ping模块:

DECLARE @dummyTbl TABLE(Id INT IDENTITY(1,1), [Key] VARCHAR(100),[Date] DATE,Employee INT);
INSERT INTO @dummyTbl VALUES
 ('LOGIN','20171225',111)
,('LOGIN','20171225',111)
,('LOGOUT','20171225',111)
,('LOGIN','20171226',111)
,('LOGIN','20171227',111)
,('LOGOUT','20171227',111);

;WITH cteRowNum AS (
    SELECT *
       ,LastDailyActivityRowNum = ROW_NUMBER() OVER (PARTITION BY Date, Employee ORDER BY Id DESC)
    FROM
       @dummyTbl
)

SELECT *
FROM
    cteRowNum
WHERE
    LastDailyActivityRowNum = 1
    AND [Key] = 'LOGIN'

我还能够针对基于主机名的单个实例成功运行ping模块:

ansible -i ~/git/ansible/inventory all -m ping

我现在想利用标签对实例进行分组。例如,我有一组标记为' env:dev' https://www.evernote.com/l/AfcLWLkermxMyIK7GvGpQXjXdIDFVAiT_z0

我尝试了以下命令的多种变体而没有运气

ansible -i ~/git/ansible/inventory instance-2 -m ping

如何在GCP上过滤和分组动态广告资源?

1 个答案:

答案 0 :(得分:1)

所以你需要在实例设置中添加网络标签而不是标签我不知道为什么但是gce.py没有返回GCP标签所以你只能使用有限的网络标签(我的意思不是键) =值但只是价值) 例如,添加网络标记只是' dev'然后运行ansible -i ~/git/ansible/inventory tag_dev -m ping 如果你需要按照我发现它的方式过滤少量标签

- name: test stuff   
  hosts: tag_api:&tag_{{ environment }}   
  var_files:
    vars/{{ environment }}
    vars/api

  tasks:
    - name: test
      command: echo "test"

像这样ansible-playbook -i inventory/ -u user playbook/test.yml -e environment=dev

运行playbook

也许有人知道更好的方式,aws ec2.py我可以在ec2.ini配置中过滤但gce.py非常有限 我也注意到有时你需要清除缓存gce.py --refresh-cache

相关问题