Determine some sensible tags to pass non-critical information to Ansible or other CM solutions:
resource "aws_instance" "main" {
...
tags {
...
"some_tag" = "waka"
| - hosts: localhost | |
| connection: local | |
| tasks: | |
| - ec2_remote_facts: | |
| region: us-east-1 | |
| filters: | |
| instance-state-name: running | |
| "tag:ENV": prod | |
| "tag:ROLES": consul-server | |
| register: ec2_facts |
| APIMETHOD="/repos/${OWNER}/${REPO}/issues/$ISSUE/labels" | |
| URL="https://api.github.com/${APIMETHOD}" | |
| curl --header "Authorization: token ${TOKEN}" \ | |
| -s \ | |
| -XPOST \ | |
| --data '{["enhancement"]}' \ | |
| --location "${URL}" | |
| ------------------------------------------- |
| { | |
| "builders": [ | |
| { | |
| "access_key": "{{user `var_aws_access_key`}}", | |
| "ami_description": "My new AMI", | |
| "ami_name": "CentOS 7 x86_64 Base {{timestamp}}", | |
| "associate_public_ip_address": true, | |
| "enhanced_networking": true, | |
| "instance_type": "{{user `var_aws_instance_type`}}", | |
| "region": "{{user `var_aws_region`}}", |
| 68 "resources": { | |
| 69 "data.terraform_remote_state.build-vpc": { | |
| 70 "type": "terraform_remote_state", | |
| 71 "depends_on": [], | |
| 72 "primary": { |
| variable "region" {} | |
| variable "aws_access_key" {} | |
| variable "aws_secret_key" {} | |
| variable "env" {} | |
| variable "company" {} | |
| data "terraform_remote_state" "build-vpc" { | |
| backend = "s3" | |
| config { | |
| region = "us-east-1" |
| $ cat Jenkinsfile | |
| #!/usr/bin/env groovy | |
| node { | |
| git credentialsId: '4sdjfsdkjbfgksjdbfksjdbfkjsdbfkjsdbfjkbsdfb', url: '[email protected]:/terraform-autobot.git' | |
| withEnv(["SOURCE_BUILD_NUMBER=${env.BUILD_NUMBER}"]) { | |
| sh '''#!/bin/bash | |
| echo $SOURCE_BUILD_NUMBER | |
| echo "=======" |
| ### Assume this list of ips | |
| 192.168.33.10,192.168.33.11,192.168.33.12 | |
| "retry_join": [{% for h in groups['consul_servers'] %}"{{ hostvars[h].ansible_eth1.ipv4.address|difference(ansible_all_ipv4_addresses)|list }}"{% if not loop.last %},{% endif %}{% endfor , | |
| ### This will output | |
| "retry_join": ["[u'1', u'9', u'2', u'.', u'6', u'8', u'3', u'0']"], | |
| ### I am looking for the following instead of ^ | |
| #### Assuming I am on box 192.168.33.12 |
| resource "aws_security_group" "jenkins" { | |
| name = "${var.env}_${var.tier}_jenkins_secgroup" | |
| vpc_id = "${var.vpc_id}" | |
| description = "jenkins security group" | |
| tags { | |
| Name = "${var.env}_${var.tier}_jenkins_secgroup" | |
| TERRAFORM = "true" | |
| ENV = "${var.env}" | |
| TIER = "${var.tier}" |
| ENVIRONMENT="$1" | |
| test_CNT="thing1 thing2 thing3" | |
| beta_CNT="thing4 thing5 thing6" | |
| for i in ${${ENVIRONMENT}_CNT}; do | |
| echo $i | |
| done | |
| #### |