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.

Reply via email to