When I tried to use it I'm getting error:
FAILED! => {"failed": true, "reason": "ERROR! this task 'serialize' has
> extra params, which is only allowed in the following modules: command,
> shell, script, include, include_vars, add_host, group_by, set_fact, raw
> , meta\n\nThe error appears to have been in
> '/home/ansible/slave/workspace/pr_test_prov2/ansible/roles/bootstrap_nodes/tasks/cobbler_netboot.yaml':
>
> line 4, column 3, but may\nbe elsewhere in the file depending on the exact
> syntax problem.
> \n\nThe offending line appears to be:\n\n\n- name: set cobbler netboot
> flag\n ^ here\n"}
>
my task definition is:
- name: set cobbler netboot
flag
serialize: command "docker exec -it cobbler cobbler system edit
--netboot-enabled=true --name={{inventory_hostname}}-pxe"
On Tuesday, March 8, 2016 at 2:55:01 PM UTC+1, Matt Billenstein wrote:
>
> Combining some ideas here, I wrote a small action plugin -- very lightly
> tested.
>
>
> import fcntl
>
>
> class ActionModule(object):
>
> def __init__(self, runner):
>
> self.runner = runner
>
>
> def run(self, conn, tmp, module_name, module_args, inject,
> complex_args=None, **kwargs):
>
> lock_file = open('/tmp/serialize.lock', 'w')
>
> fcntl.flock(lock_file.fileno(), fcntl.LOCK_EX)
>
> module_name, module_args = module_args.split(' ', 1)
>
> return self.runner._execute_module(conn, tmp, module_name,
> module_args, inject=inject, complex_args=complex_args, **kwargs)
>
>
> Dropping this in action_plugins/synchronize.py and touching
> library/synchronize.py -- you can invoke this in your playbook:
>
>
> - name: restart foo
>
> serialize: command supervisorctl -c /etc/supervisord.conf signal HUP foo
>
>
> m
>
>
> On Monday, February 17, 2014 at 4:09:19 AM UTC-8, Vidar Langseid wrote:
>>
>> Hi
>>
>> In playbook for web servers, I need set firewall rules so that database
>> accepts connections:
>> - name: FW rule - accept input 3306 from web server to DB server
>> lineinfile: dest=/etc/sysconfig/iptables
>> regexp="^-A INPUT -p tcp -m state --state NEW -m tcp -s {{
>> ansible_eth0["ipv4"]["address"] }} --dport 3306 -j ACCEPT$"
>> line="-A INPUT -p tcp -m state --state NEW -m tcp -s {{
>> ansible_eth0["ipv4"]["address"] }} --dport 3306 -j ACCEPT"
>> state=present
>> insertbefore="^-A INPUT -j REJECT --reject-with
>> icmp-host-prohibited.*$"
>> delegate_to: "{{ groups.dbservers.0 }}"
>> notify:
>> - Restart iptables on DB server
>> tags: fwrules
>>
>>
>> However, since I have multiple web servers, the liniinfile action will be
>> run in parallel on the db server, causing an unpredictable result ( trying
>> to change the file from multiple processes at the same time )...
>> Any thoughts about adding support for "Serial:1" in task context?
>> I found this thread on the topic :
>> https://groups.google.com/forum/#!topic/ansible-project/CNxrMIyKx58
>> but no solution yet...
>>
>>
>> In one attempt to work around this problem, I have tried to set the FW
>> rules in the playbook for Database server instead, by looping over
>> groups['webservers']...
>> However, I still need the IP of each web server and that is problematic.
>> It should be possible to get the IPs using magic variable :
>>
>> {{ hostvars['test.example.com']['ansible_distribution'] }}
>>
>> Since I am looping over groups['webservers'], I have the name of the web
>> server in {{ item }}. How to I inject that variable name in the expression?
>> The following do not work ( substituting lineinfile with shell to
>> illustrating the variable problem ) :
>> - name: FW rule - accept input 3306 from web server to DB server
>> shell: /bin/true {{ hostvars.item.ansible_eth0["ipv4"]["address"] }} {{
>> hostvars.[{{ 'item' }}].ansible_eth0["ipv4"]["address"] }}
>> with_items: groups['webservers']
>> notify:
>> - Restart iptables on DB server
>> tags: fwrules
>>
>>
>> Btw, when using Rolles ( http://docs.ansible.com/playbooks_roles.html#roles
>> ), in which file may I specify Serial ?
>> Neither in tasks/main.yml, handlers/main.yml or vars/main.yml seems to
>> work....
>>
>> Best regards,
>> Vidar
>>
>>
--
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/9d55d25f-0339-430c-8eb0-2f531b1c7d2c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.