On Sun, 9 Aug 2020 04:33:58 -0700 (PDT) Igor Gnatenko <[email protected]> wrote:
> Basically I am looking for something like `parallel -jX` linux command. At > any time it runs up to X threads with a command. That's what strategy "host_pinned" does. See https://docs.ansible.com/ansible/latest/plugins/strategy/host_pinned.html#host-pinned-executes-tasks-on-each-host-without-interruption > I noticed that serial: 2 with any strategy will wait for play to run on > these 2 hosts and only after that it will move to the next ones. Only "linear" works this way, I think. > I'd like Ansible to run on 2 hosts at any time, so once it finishes with 1 > of 2 in batch, it would already run playbook for the 3rd host. > Is such thing does not exist or I just can't find how to do it? See this example. Is this what you're looking for? https://stackoverflow.com/questions/59877712/execute-ansible-playbook-for-next-host-after-finishing-one-host-not-all-forked-h $ cat hosts all: hosts: test_01: wait_timeout: 1 test_02: wait_timeout: 2 test_03: wait_timeout: 3 test_06: wait_timeout: 4 test_09: wait_timeout: 5 $ cat pinned-01.yml - name: Play A hosts: all gather_facts: false strategy: host_pinned tasks: - debug: msg: "A:{{ inventory_hostname }} {{ lookup('pipe', 'date +%H-%M-%S') }} started" - wait_for: timeout: "{{ wait_timeout }}" - debug: msg: "A:{{ inventory_hostname }} {{ lookup('pipe', 'date +%H-%M-%S') }} finished" $ ansible-playbook pinned-01.yml -f 3 | grep msg\": "msg": "A:test_06 15-33-05 started" "msg": "A:test_09 15-33-05 started" "msg": "A:test_01 15-33-05 started" "msg": "A:test_01 15-33-08 finished" "msg": "A:test_02 15-33-08 started" "msg": "A:test_06 15-33-11 finished" "msg": "A:test_03 15-33-11 started" "msg": "A:test_02 15-33-11 finished" "msg": "A:test_09 15-33-12 finished" "msg": "A:test_03 15-33-15 finished" Results Because of -f 3 Ansible started 3 hosts (1,9,6). Host 1 finished first and opened it's slot to a new host that was waiting to start. Host 2 started. The same way host 3 started right after host 6 finished. Host 2, which started after host 9, finished before host 9. -- Vladimir Botka -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/20200809165158.5477b3a8%40gmail.com.
pgpRgc59UhmUd.pgp
Description: OpenPGP digital signature
