Hi I solved issue with interfering with inventory I put stop script on one host and lookup for it and start only on server what have it, that solve issue across. I believe whole landscape i will test it in next weeks to see
poniedziałek, 9 stycznia 2023 o 14:13:16 UTC+1 [email protected] napisał(a): > You mentioned multiple environments. The suggestion I made before is only > sufficient for one environment. In our shop, we use "fully articulated > group names" that consist of the problem *"domain", *the "*environment*", > plus host classes as required to specify the hosts without relying on > special hostname patterns or other tricks. > > In your case, suppose your app is called "xkcd", and you have environments > named "dev", "tst", "spt", and "prd", each of which contains a db host and > a few app hosts. Using our shop's inventory conventions for the "xkcd" > problem domain would result in the inventory below. Though not required, by > convention we always use a host's FQDN as the inventory name (i.e. > ansible_fqdn==inventory_hostname). We may also set up an "all" pseudo > environment that encompasses all the hosts in the problem domain. It's > occasionally useful in playbooks, and it also helps ensure we've created > our group hierarchy the way we expect. In particular, if we find we're > having to specify a hostname more than once in a problem domain, we > probably have not created the correct hierarchy of sub_groups. > > [xkcd_all:children] > xkcd_dev > xkcd_tst > xkcd_spt > xkcd_prd > > [xkcd_all_db:children] > xkcd_dev_db > xkcd_tst_db > xkcd_spt_db > xkcd_prd_db > > [xkcd_all_app:children] > xkcd_dev_app > xkcd_tst_app > xkcd_spt_app > xkcd_prd_app > > [xkcd_dev:children] > xkcd_dev_db > xkcd_dev_app > > [xkcd_dev_db]dbhost0d.our.org > > [xkcd_dev_app]apphost0d.our.org > > [xkcd_tst:children] > xkcd_tst_db > xkcd_tst_app > > [xkcd_tst_db]dbhost0t.our.org > > [xkcd_tst_app]apphost0t.our.orgapphost1t.our.org > > [xkcd_spt:children] > xkcd_spt_db > xkcd_spt_app > > [xkcd_spt_db]dbhost0s.our.orgdbhost1s.our.org > > [xkcd_spt_app]apphost0s.our.orgapphost1s.our.org > > [xkcd_prd:children] > xkcd_prd_db > xkcd_prd_app > > [xkcd_prd_db]dbhost0p.our.orgdbhost1p.our.org > > [xkcd_prd_app]apphost0p.our.orgapphost1p.our.orgapphost2p.our.orgapphost3p.our.org > > > On 1/9/23 7:13 AM, Todd Lewis wrote: > > This looks like an inventory issue to me. You could have more fine-grained > control with hierarchical groups: > > [a:children] > a_db > a_app > > [a_db] > dbhost1 > > [a_app] > apphost2 > apphost3 > > Then run your "stop application" task like so: > > - name: Stop application > … > when: 'inventory_hostname in group["a_app"]' > run_once: true > > On 1/9/23 6:48 AM, Redmansas wrote: > > I'm running task on group called A > [A] > dbhost1 > apphost2 > apphost3 > > task "stop application" should run only on apphost2 or 3 and need to run > only once(script stop whole environment ) > so I would like to eliminate from "stop application" dbhost1 and then run > stop part only on one of apphosts(no different which one) > before stop part there some task running on all of nodes > I have multiple environments so and in each of them also is db and app > servers and only app servers can stop > I tried to use > - block > - block: > <stop app> > run_once: yes > when: ansible_hostname[0] == "a" > > but if it will catch DB host it will skip it and then skip block part > I hope is more clear now :/ > > > poniedziałek, 9 stycznia 2023 o 12:26:02 UTC+1 [email protected] > napisał(a): > >> I can't make any sense of what you're trying to achieve. Can you rephrase >> and be more clear? >> >> On Mon, 9 Jan 2023 at 12:00, Redmansas <[email protected]> wrote: >> >>> Hi >>> Maybe idiotic problem but I don't have clue how to bite it :/ >>> I have example list of 3 hosts all are needed in inventory. I need to >>> run one task to stop application >>> Host 1 >>> Host 2 >>> Host 3 >>> app can be stopped only on host 2 and 3 and it need to run once because >>> it will stop for whole landscape. I know that I can create a static var >>> with host name but then any landscape i need to change it. >>> >>> so I though to eliminate host1 from list and then run only once on one >>> of rest hosts (host2/host3) >>> I tried to do double block but in first iteration skip host 1 but in >>> second block don't do anything >>> >>> >>> >>> >>> -- >>> 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/f296b591-c146-4271-a86d-f1101140921cn%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/ansible-project/f296b591-c146-4271-a86d-f1101140921cn%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- >> Sent from Gmail Mobile >> > -- > 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/987210e7-ffdb-4d28-b3d4-588088c9e081n%40googlegroups.com > > <https://groups.google.com/d/msgid/ansible-project/987210e7-ffdb-4d28-b3d4-588088c9e081n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > > -- > Todd > > > -- > Todd > > -- 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/f38b6caa-a33d-49b0-8b0f-cdec510f2a58n%40googlegroups.com.
