如何在Ansible中的目标主机旁边的另一个主机上执行任务? -- ansible 领域 服务器管理 相关 的问题

How to execute tasks on another host beside the target host in Ansible?


0
vote

问题

中文

我想在目标主机'a'上运行一个带有serval任务的剧本。此外,我想在DNS服务器主机'B'中为主机'A'设置DNS记录。 优选地,仅使用一个剧本。播放的播放将设置为"全部" ,设置DNS记录的播放将仅限于主机'B'。 Host'B'也将是固定的并且可以硬逻辑,它应该使用,例如。 ANSIBLE_HOSTNAME为HOST'A'作为参数。 任何想法如何实现这一目标?

英文原文

I would like to run a playbook with serval tasks on the target host 'A'. Additionally I would like to set a DNS record for host 'A' at the DNS server host 'B'. Preferably only one playbook shall be used. Hosts of the play will be set to 'all', the play to set DNS records will be limited to Host 'B'. Host 'B' will also be fixed and could be hardcoded, it should use eg. ansible_hostname of Host 'A' as parameter. Any Idea how to achieve this ?

  

回答列表

2
 
vote
vote
最佳答案
 

您可以使用 delegate_to

  - name: set dns record   win_dns_record:     name: "{{ inventory_hostname_short }}"     type: A     value: "{{ item }}"     zone: "{{ ansible_domain }}"   delegate_to: 'b'   loop: "{{ ansible_all_ipv4_addresses }}"   

任务将循环到机器的所有IP地址并运行以创建DNS条目。可能不是最好的配置,但它显示了所需的一切。

 

You can use delegate_to.

- name: set dns record   win_dns_record:     name: "{{ inventory_hostname_short }}"     type: A     value: "{{ item }}"     zone: "{{ ansible_domain }}"   delegate_to: 'b'   loop: "{{ ansible_all_ipv4_addresses }}" 

The task will loop over all IP addresses of the machine and run against 'B' to create DNS entries. Probably not the best configuration, but it shows everything you need.

 
 
 
 

相关问题

2  覆盖ANSSIBLE默认SSH_USER  ( Override ansible default ssh user ) 
99%我使用ansible的时间,我使用我的主机文件中指定的ansible_ssh_user。其他1%的用户不存在的时间,我需要使用默认用户创建它。如何以这样的方式运行一个戏剧簿,即它覆盖主机文件中的ansible_ssh_user? 我尝试了以下内容: ansible-playbook my-playbook...

0  来自CSV的Ansible创建用户  ( Ansible create users from csv ) 
我刚开始使用Ansible。在管理具有Ansible的多个用户帐户时是否有最佳实践; (例如;创建,禁用和删除用户帐户)。我想,来自CSV文件的管理帐户将更早。我无法找到任何参考或例子。 我在下面创建了以下测试。但是对于可用性,似乎对CSV文件运行此似乎更容易,而且不必每次都编辑YML文件。 - hos...

2  通过使用passwd命令和从ansible文件中选择旧密码的非root帐户的Ansible更改密码  ( Via ansible change password of non root account using passwd command and picking ) 
我有很多系统都有一个常见的用户名要登录。密码对大多数系统也是相同的。我有1个包含所有系统的库存文件。对于具有不同密码的系统,我已将密码保存在主机名上,并且对于剩余的它位于Group_vars文件中。 在库存文件中: hostname1 ansible_ssh_pass=pass1 hostname2 ansibl...

9  如何将用户添加到Ansible中的多个组?  ( How can i add a user to multiple groups in ansible ) 
我无法将用户添加到多个组,我继续播放msg:此模块需要键=值参数。 这是我正在尝试的代码: dc=exmaple,dc=org4 文档说:组=将用户放入此逗号分隔的组列表中。当设置为空字符串('组=')时,除了主组之外的所有组中都会删除用户。 我尝试过"group" ,'group',没有冒号,仍然得到相同的...

-2  使用ANSIBLE连接到远程主机时出错[关闭]  ( Error while connecting to remote host using ansible ) 
关闭。这个问题是 off-topic 。它目前不接受答案。 想要改进这个问题?更新问题,所以它是主题 for server fault。 关闭 2年...

1  Ansible - 服务器/应用程序启动重启  ( Ansible server application initiated reboot ) 
我想使用ASSibe进行远程服务器的软件升级(BSD UNIX基于)。在升级结束时,系统会自动重新启动(此重新启动不由ANSIBLE发起)。我想确保Ansible将等待服务器返回然后继续其他任务。脚本适用于升级,但在重启期间失败(抱怨SSH共享连接失败)。 script1: - hosts: remote_se...

1  无法获取模块以管理在Ansible中工作的Windows系统  ( Unable to get module for managing windows system working in ansible ) 
我正在学习Anssible。我的笔记本电脑正在运行Windows 7,是域的一部分。我在笔记本电脑上安装了Ubuntu Linux在我的笔记本电脑上的VM中,并在其中安装了Ansible,以及其他Python和Kerberos软件包。还配置了Kerberos,但无法使用Windows模块来使用Win_ping使用Wi...

0  ansible-playbook使用子目录为变量  ( Ansible playbook to use subdirectory as variable ) 
/ var / lib / phoronix-test-suite / test-excuest / 它有3个子模d: 2018-04-22-1850 2018-04-23-1850 2018-04-24-1850 和每个文件中的一个小文件: composite.xml 内容的一部分: <结果&...

0  您可以设置Ansible的Password_hash Jinja2过滤器的轮数吗?  ( Can you set the number of rounds that ansibles password hash jinja2 filter uses ) 
在Ansible中,使用这样的东西非常方便: - name: Make sure user password is set user: name: my_user password: "{{ user_password|password_hash('sha512', 'SomeSalt') ...

0  Ansible - 同时复制和编辑远程文件?  ( Ansible copying and editing a remote file at the same time ) 
在一个ansible角色中,我正在寻找一种将远程文件复制到不同位置的方法,同时还替换文件的前两行。 我对其他方法打开,但我的解决方案涉及使用Slurp来检索文件,以某种方式将其转换为单个行的列表,然后使用模板将其写回来。 我被困在将slurp返回的字符串分成行的步骤。 ansible 2.9,控制器和远程主机都正在...

0  在特定操作系统上运行时成为root  ( Become root when running on specific os ) 
我只有在特定操作系统上运行时,我只能成为root,让我们说,Ubuntu。 我已经尝试过: become: ansible_os_family == 'Darwin' become: (ansible_os_family == 'Darwin') become: {{ ansible_os_family }} =...

1  每20个执行时更改Group_var  ( Change a group var on every 20 executions ) 
我有一个包含更多或更少的100个主机的Ansible项目(在不久的将来更多),该项目对API进行了几个调用,即每令牌1000个呼叫的限制率。 在我的项目中,我定义了 group_vars 以及我想要的是运行任务,并且令牌更改了每20个主机,如前20个主机将具有group_var token=A ,接下来的20个主机...

6  使用Regex在Ansible中从列表中提取单个项目  ( Extract a single item from a list using regex in ansible ) 
我试图在ubuntu 16.04上配置桥接接口,模拟 /etc/network/interfaces file ,以便自动插入本地NIC,如: auto br0 iface br0 inet dhcp bridge_ports <interface> 我没有 biosdevname 安装了,因此界面...

4  是否可以使用Ansible更改当前用户的密码内部?  ( Is it possible to change the current users password in band with ansible ) 
我有一个新安装的Linux发行版。它具有常规用户,具有默认密码,锁定的root帐户(根上没有密码 - 不能直接SSHED)。我希望能够运行一个Ansible PlayBook来配置此服务器,并通过更改其密码来锁定此默认帐户,而无需进行额外的带外步骤。 我的playbook确实需要root的大多数设置,因此它将其配置为...

0  ansible变量定义以从库存文件中选择import_playbook  ( Ansible variable definition to choose import playbook from inventory file ) 
我正在使用ansible(v2.8)来构建碰巧支持Drupal的两个不同的服务器环境。它们在操作系统,RDBMS,Gluster,Memcached等的设置方面非常相似,但对于使用Drupal(不同版本,不同数量的Drupal实例等)而言非常不同。因此,虽然几乎所有的剧本,var文件等都很常见,但我有一个用于Drup...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有