金鱼哥RHCA回忆录:DO447协调滚动更新--委派任务和事实

简介: 第五章 协调滚动更新--委派任务和事实
🎹 个人简介:大家好,我是 金鱼哥,CSDN运维领域新星创作者,华为云·云享专家,阿里云社区·专家博主
📚个人资质: CCNA、HCNP、CSNA(网络分析师),软考初级、中级网络工程师、RHCSA、RHCE、RHCA、RHCI、ITIL😜
💬格言:努力不一定成功,但要想成功就必须努力🔥

官网:https://docs.ansible.com/ansible/latest/user_guide/playbooks_delegation.html


📜5.1.1 委派任务

有时,当Ansible运行一个play以确保系统的正确配置时,它可能需要代表托管主机在不同的系统上执行一个或多个任务。例如,您可能需要登录网络设备来更改DHCP配置,或确保Active Directory域中存在某些组,或使用被管理主机上不可用的工具与服务的APl通信。

在play中,可以将任务委派到另一个主机上运行,而不是当前托管主机上。

任务使用delegate_to指令将操作委托给主机。这个指令将Ansible指向将在相应的目标位置执行任务的主机。

委派任务最常见的地方之一是localhost,即Ansible控制节点。例如,如果您需要与某个服务的API进行通信,但由于某些原因无法从托管主机访问该服务,但可以从控制节点访问该服务,则可以这样做。

下面是一个简单的示例,在剧中的每台主机上执行uname -a命令,然后在localhost上代表剧本中的每台主机执行uname -a命令。

image-20220417121425059

在下面的实际示例中,第一个任务依次委托给Ansible组lbservers中的每个HAProxy负载均衡器,从所有负载均衡器中删除托管主机。

然后,没有委托的第二个任务将停止托管主机上的web服务器。此任务在剧中的每个主机上运行。

image-20220417124634543


📜5.1.2 委派事实

在前面的例子中,使用了事实ansible_facts['fgdn']。使用被管理主机的FQDN,而不是localhost。

当您删除一个任务时,使用运行该任务的托管主机(当前的inventory_hostname)的主机变量和事实。因此,如果任务正在为服务器运行,但已委托给localhost,则为服务器使用变量和事实。这通常就是你想要的。

但是,有时您可能希望将委托任务收集到的事实分配给任务被委托给的主机。要更改此设置,请将delegate_facts指令设置为true

image-20220417124706864

前面的play是针对localhost运行的,但是第一个任务是委托给servera.lab.example.com。在该任务上使用delegate_facts指令指示Ansible将事实收集到hostvars['servera.lab.example.com']的命名空间,而不是为当前托管主机的默认hostvars['localhost']命名空间。


📜5.1.3 课本练习

[student@workstation ~]$ lab update-delegation start
[student@workstation ~]$ cd git-repos/

📑拉取实验代码

[student@workstation git-repos]$ git clone http://git.lab.example.com:8081/git/update-delegation.git
[student@workstation update-delegation]$ cd update-delegation

📑按要求编写剧本

[student@workstation update-delegation]$ vim query_times.yml
---
- name: Query server times and store them locally
  hosts: web_servers
  gather_facts: false

  tasks:
    - name: Take time on server
      shell: 'date'
      register: date
      changed_when: no

    - name: Save times to localhost
      vars:
        record: "{{ inventory_hostname }} time: {{ date.stdout_lines[0] }}"
      shell: "echo '{{ record }}' >> /tmp/times.txt"
      delegate_to: localhost

📑执行剧本并验证

[student@workstation update-delegation]$ ansible-playbook query_times.yml
[student@workstation update-delegation]$ cat /tmp/times.txt 
servera.lab.example.com time: Tue May  4 19:49:04 CST 2021
serverb.lab.example.com time: mar may  4 19:49:04 CST 2021
serverd.lab.example.com time: Tue May  4 19:49:04 CST 2021
servere.lab.example.com time: Tue May  4 19:49:04 CST 2021
serverc.lab.example.com time: Tue May  4 19:49:04 CST 2021
serverf.lab.example.com time: Tue May  4 19:49:05 CST 2021

📑清除实验

[student@workstation update-delegation]$ lab update-delegation finish

💡总结

RHCA认证需要经历5门的学习与考试,还是需要花不少时间去学习与备考的,好好加油,可以噶🤪。

以上就是【金鱼哥】对 第五章 协调滚动更新--委派任务和事实 的简述和讲解。希望能对看到此文章的小伙伴有所帮助。

💾 红帽认证专栏系列:
RHCSA专栏: 戏说 RHCSA 认证
RHCE专栏: 戏说 RHCE 认证
此文章收录在RHCA专栏: RHCA 回忆录

如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点。

如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!

目录
相关文章
|
安全 数据安全/隐私保护
openssh和openssl的版本关系
【4月更文挑战第14天】openssh和openssl的版本关系
2364 0
|
域名解析 网络协议 Linux
解决Linux环境中ping域名ping不通,ping ip地址可以ping通问题
解决Linux环境中ping域名ping不通,ping ip地址可以ping通问题
解决Linux环境中ping域名ping不通,ping ip地址可以ping通问题
|
6月前
|
存储 运维 网络协议
【Syslog】Centos下的syslog服务器配置
通过本文的配置指导,您不仅学会了如何安装和配置 `rsyslog`,还掌握了如何在防火墙中开放必要的端口,并验证服务器的配置是否正确。希望这些知识能够帮助您更好地管理和维护您的Linux系统。
854 15
|
2月前
|
监控 安全 NoSQL
【DevOps】Logstash详解:高效日志管理与分析工具
Logstash是ELK Stack核心组件之一,具备强大的日志收集、处理与转发能力。它支持多种数据来源,提供灵活的过滤、转换机制,并可通过插件扩展功能,广泛应用于系统日志分析、性能优化及安全合规等领域,是现代日志管理的关键工具。
304 0
|
5月前
|
人工智能 Kubernetes 安全
Nacos 3.0 正式发布:MCP Registry、安全零信任、链接更多生态
Nacos 3.0正式发布,作为云原生时代的基础设施级产品,不仅提升了技术能力,还以更高效、安全的方式帮助用户构建云原生AI应用架构。此次更新重点包括:升级MCP Registry,支持多种类型注册与动态管理;增强安全架构,默认开启鉴权并支持零信任方案;扩展多语言生态,覆盖Python、GoLang、Rust等主流开发语言;提供Nacos-MCP-Router实现MCP动态发现与自动安装。此外,3.0版本改进了安全部署架构,加强K8S生态同步,并推出实验性功能如分布式锁和服务配置模糊订阅。Nacos致力于简化微服务管理和AI应用开发,欢迎加入社区共建!
1050 43
|
关系型数据库 MySQL 数据库
【MySQL】mysql异常宕机无法启动处理过程
【MySQL】mysql异常宕机无法启动处理过程
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
国产AI神器Deepseek,本地离线使用教程!
国产AI神器Deepseek,本地离线使用教程!
810 14
|
11月前
|
Java Shell Nacos
升级Nacos竟然踩了这种坑?配置文件里的“隐形杀手”!
本文介绍了从Nacos 1.3.0升级到2.3.0的过程及注意事项,涵盖单机与集群模式的升级步骤,特别分享了一次因配置文件中多余空格导致的服务启动失败的经历,提醒读者注意配置细节。
407 0
|
Shell
makefile编写与使用
makefile编写与使用
951 0
makefile编写与使用
|
12月前
|
Java
Waited 3000 milliseconds (plus 110349 nanoseconds delay) for com.alibaba.nacos.shaded.io.grpc.stub.ClientCalls
Waited 3000 milliseconds (plus 110349 nanoseconds delay) for com.alibaba.nacos.shaded.io.grpc.stub.ClientCalls
1828 0