Hi
I am trying to start the instances from a list of instances-ids using
with_items and when condition.I have created a databases with four columns
consisting of instance-ids,start-time,end-time and instance-name.Now by
using jinja2 templates in ansible i have assigned 4 columns into four
arrays.In the playbook i took present time and when this present time
equals to the start time in the databases then the instance ids that are
assigned to that start time get to be started.The error here is that i was
able to pass the instance-ids to ec2 modules but those getting skipped.Here
i took from myvar1 to myvar4 for 4 arrays as i mentioned above. myvar5 and
myvar6 for the start time and end time that is matching with present
time.And the playbook is
---
- hosts: localhost
connection: local
gather_facts: false
tasks:
- name: Retrieve stuff from mysql
command: mysql -e 'select * from instance_data' automation
register: results
- debug: var=results.stdout.split(\t)
- name: date and time
command: date +"%H:%M"
register: date
- set_fact:
myvar1: |
{% set list1 = results.stdout.split('\n') %}
{% set servername = [] %}
{% for j in list1 %}
{% set k= j.split('\t') %}
{% set ignored = servername.extend(k) %}
{% endfor %}
{% set list3= list1|length %}
{% set i= range(list3) %}
{% set u = i|max %}
{% set l = u+1 %}
{% for j in i %}
{% set a = (4*j) %}
{{servername[a]}}
{% endfor %}
myvar2: |
{% set list1 = results.stdout.split('\n') %}
{% set servername = [] %}
{% for j in list1 %}
{% set k= j.split('\t') %}
{% set ignored = servername.extend(k) %}
{% endfor %}
{% set list3= list1|length %}
{% set i= range(list3) %}
{% set u = i|max %}
{% set l = u+1 %}
{% for j in i %}
{% set b = ((4*j)+1) %}
{{servername[b]}}
{% endfor %}
myvar3: |
{% set list1 = results.stdout.split('\n') %}
{% set servername = [] %}
{% for j in list1 %}
{% set k= j.split('\t') %}
{% set ignored = servername.extend(k) %}
{% endfor %}
{% set list3= list1|length %}
{% set i= range(list3) %}
{% set u = i|max %}
{% set l = u+1 %}
{% for j in i %}
{% set c = ((4*j)+2) %}
{{servername[c]}}
{% endfor %}
myvar4: |
{% set list1 = results.stdout.split('\n') %}
{% set servername = [] %}
{% for j in list1 %}
{% set k= j.split('\t') %}
{% set ignored = servername.extend(k) %}
{% endfor %}
{% set list3= list1|length %}
{% set i= range(list3) %}
{% for j in i %}
{% set d = ((4*j)+3) %}
{{servername[d]}}
{% endfor %}
myvar5: |
{% set list1 = results.stdout.split('\n') %}
{% set servername = [] %}
{% for j in list1 %}
{% set k= j.split('\t') %}
{% set ignored = servername.extend(k) %}
{% endfor %}
{% set list3= list1|length %}
{% set i= range(list3) %}
{% set t = date.stdout %}
{% for m in i %}
{% set e = ((4*m)+1) %}
{% set w = (4*m) %}
{% if t is defined and t == servername[e]%}
{% set w = (4*m) %}
{{servername[w]}}
{% endif %}
{% endfor %}
myvar6: |
{% set list1 = results.stdout.split('\n') %}
{% set servername = [] %}
{% for j in list1 %}
{% set k= j.split('\t') %}
{% set ignored = servername.extend(k) %}
{% endfor %}
{% set list3= list1|length %}
{% set i= range(list3) %}
{% set t = date.stdout %}
{% for n in i %}
{% set f = ((4*n)+2) %}
{% if t is defined and t == servername[f]%}
{% set z = (4*n) %}
{% endif %}
{% endfor %}
- debug: var=myvar1.split(\n)
- debug: var=myvar2.split(\n)
- debug: var=myvar3.split(\n)
- debug: var=myvar4.split(\n)
- debug: var=myvar5.split(\n)
- debug: var=myvar6.split(\n)
- debug: var=date.stdout
- name: Start myserver instance
local_action:
module: ec2
region: "us-east-1"
instance_ids: "{{myvar5.split(\n)}}"
state: running
with_items: "{{myvar5.split(\n)}}"
when: "item|int"
Output:
PLAY [localhost]
***************************************************************
TASK [Retrieve stuff from mysql]
***********************************************
changed: [localhost]
TASK [debug]
*******************************************************************
ok: [localhost] => {
"results.stdout.split(\t)": [
"instance_id",
"start_time",
"stop_time",
"instance_name",
"i-00440942b2bacbd03",
"17:09",
"16:00",
"Billing",
"i-00ef49e66588585ef",
"17:09",
"16:00",
"ansible-launched",
"i-01543b3b959fe0eca",
"09:00",
"20:32",
"windows-ec2-telegraf",
"i-0336017296fcf14ca",
"16:41",
"20:32",
"openvpn",
"i-07d1b8b92a90f8498",
"11:00",
"20:00",
"ec2-private-inst2",
"i-08f713f2803c4f1c2",
"21:49",
"15:21",
"ec2-private",
"i-0a3910522c326d26b",
"20:12",
"14:55",
"Automation2",
"i-0ebb9a1517bfe54d4",
"11:46",
"14:55",
"Bonding"
]
}
TASK [date and time]
***********************************************************
changed: [localhost]
TASK [set_fact]
****************************************************************
ok: [localhost]
TASK [debug]
*******************************************************************
ok: [localhost] => {
"myvar1.split(\n)": [
"instance_id",
"i-00440942b2bacbd03",
"i-00ef49e66588585ef",
"i-01543b3b959fe0eca",
"i-0336017296fcf14ca",
"i-07d1b8b92a90f8498",
"i-08f713f2803c4f1c2",
"i-0a3910522c326d26b",
"i-0ebb9a1517bfe54d4"
]
}
TASK [debug]
*******************************************************************
ok: [localhost] => {
"myvar2.split(\n)": [
"start_time",
"17:09",
"17:09",
"09:00",
"16:41",
"11:00",
"21:49",
"20:12",
"11:46"
]
}
TASK [debug]
*******************************************************************
ok: [localhost] => {
"myvar3.split(\n)": [
"stop_time",
"16:00",
"16:00",
"20:32",
"20:32",
"20:00",
"15:21",
"14:55",
"14:55"
]
}
TASK [debug]
*******************************************************************
ok: [localhost] => {
"myvar4.split(\n)": [
"instance_name",
"Billing",
"ansible-launched",
"windows-ec2-telegraf",
"openvpn",
"ec2-private-inst2",
"ec2-private",
"Automation2",
"Bonding"
]
}
TASK [debug]
*******************************************************************
ok: [localhost] => {
"myvar5.split(\n)": [
"i-0ebb9a1517bfe54d4"
]
}
TASK [debug]
*******************************************************************
ok: [localhost] => {
"myvar6.split(\n)": []
}
TASK [debug]
*******************************************************************
ok: [localhost] => {
"date.stdout": "11:46"
}
TASK [Start myserver instance]
*************************************************
skipping: [localhost] => (item=i-0ebb9a1517bfe54d4)
PLAY RECAP
*********************************************************************
localhost : ok=11 changed=2 unreachable=0 failed=0
Thanks,
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/7308e464-e250-4706-bcce-9c985c2b45d9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.