ansible 任务块以及循环

任务块

  • 可以通过block关键字,将多个任务组合到一起
  • 可以将整个block任务组,一起控制是否要执行
# 如果webservers组中的主机系统发行版是Rocky,则安装并启动nginx
[root@pubserver ansible]# vim block1.yml
---
- name: block tasks
  hosts: webservers
  tasks:
    - name: define a group of tasks
      block:
        - name: install nginx   # 通过yum安装nginx
          yum:
            name: nginx
            state: present
 
        - name: start nginx     # 通过service启动nginx服务
          service:
            name: nginx
            state: started
            enabled: yes
      when: ansible_distribution=="Rocky"   # 条件为真才会执行上面的任务

rescue和always

lock和rescue、always联合使用:

  • block中的任务都成功,rescue中的任务不执行
  • block中的任务出现失败(failed),rescue中的任务执行
  • block中的任务不管怎么样,always中的任务总是执行

loop循环

  • 相当于shell中for循环
  • ansible中循环用到的变量名是固定的,叫item

role角色

# 创建角色
# 1. 声明角色存放的位置
[root@pubserver ansible]# vim ansible.cfg 
[defaults]
inventory = hosts
roles_path = roles    # 定义角色存在当前目录的roles子目录中
# 2. 创建角色目录
[root@pubserver ansible]# mkdir roles
# 3. 创建名为motd的角色
[root@pubserver ansible]# ansible-galaxy init roles/motd
[root@pubserver ansible]# ls roles/ motd     # 生成了motd角色目录

ansible加解密文件

[root@pubserver ansible]# echo "tedu.cn" > pass.txt
[root@pubserver ansible]# echo "hello wrord" > data.txt
[root@pubserver ansible]# ansible-vault encrypt data.txt --vault-id pass.txt  加密
Encryption successful
[root@pubserver ansible]# ansible-vault decrypt data.txt --vault-id pass.txt   解密

  • 使用ansible管理远程主机,存储敏感数据时(如,文件中包含密码),应该将其加密
  • 执行playbook时,通过--ask-vault-password选项提示输入密码
  • ansible-vault encrypt test02.yml 

  ansible-playbook test02.yml 
   ansible-playbook test02.yml --ask-vault-password
  echo 123 > 123.txt
  ansible-playbook test02.yml --vault-id 123.txt 

sudo命令

特殊的主机清单变量

  • 如果远程主机没有使用免密登陆,如果远程主机ssh不是标准的22端口,可以设置特殊的主机清单变量
  • ansible_ssh_user:指定登陆远程主机的用户名
  • ansible_ssh_pass:指定登陆远程主机的密码
  • ansible_ssh_port:指定登陆远程主机的端口号
 删除远程主机的/root/.ssh/authorized_keys,以便恢复通过密码登陆
# 修改web1 ssh服务的端口为220
[root@web1 ~]# systemctl stop firewalld
[root@web1 ~]# echo 'Port 220' >> /etc/ssh/sshd_config
[root@web1 ~]# systemctl restart sshd
# 退出再登陆时,需要指定端口号
[root@myhost ~]# ssh -p220 192.168.88.11 
# 配置ssh通过用户名、密码管理远程主机,通过220端口连接web1
[root@pubserver myansible]# vim inventory 
[group1]
web1 ansible_ssh_user=root ansible_ssh_pass=a ansible_ssh_port=220
web2 ansible_ssh_user=root ansible_ssh_pass=a
db1 ansible_ssh_user=root ansible_ssh_pass=a

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/32996.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

墨刀原型工具-小白入门篇

墨刀原型工具-小白入门篇 简介 随着互联网的发展和用户体验的重要性越来越受到重视,原型设计逐渐成为了产品设计中的重要环节。墨刀作为一款原型设计工具,以其简洁、易用的特点,受到了很多设计师的喜爱。本文将介绍墨刀原型工具的基本使用方…

ROS2从入门到精通4-4:局部控制插件开发案例(以PID算法为例)

目录 0 专栏介绍1 控制插件编写模板1.1 构造控制插件类1.2 注册并导出插件1.3 编译与使用插件 2 基于PID的路径跟踪原理3 控制插件开发案例(PID算法)常见问题 0 专栏介绍 本专栏旨在通过对ROS2的系统学习,掌握ROS2底层基本分布式原理,并具有机器人建模和…

Go 如何使用指针灵活操作内存

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

Leetcode 3196. Maximize Total Cost of Alternating Subarrays

Leetcode 3196. Maximize Total Cost of Alternating Subarrays 1. 解题思路2. 代码实现 题目链接:3196. Maximize Total Cost of Alternating Subarrays 1. 解题思路 这一题就是一个动态规划,只需要考虑每一个元素作为开始和处于序列当中的二元态即可…

深度学习引言

深度学习引言 什么是神经网络? 我们常常用深度学习这个术语来指训练神经网络的过程。有时它指的是特别大规模的神经网络训练。 神经网络的监督学习 关于神经网络也有很多的种类,考虑到它们的使用效果,有些使用起来恰到好处,但事实…

90天瘦30斤瘦身计划

90天瘦30斤瘦身计划 重要提示: 在开始任何减肥计划之前,强烈建议咨询医生或营养师以确保该计划适合您的健康状况。减肥过快可能对身体健康产生负面影响,因此请确保您的方法既安全又可持续。 目标: 在90天内健康地减轻30斤体重。…

爬虫笔记14——爬取网页数据写入MongoDB数据库,以爱奇艺为例

下载MongoDB数据库 首先,需要下载MongoDB数据库,下载的话比较简单,直接去官网找到想要的版本下载即可,具体安装过程可以看这里。 pycharm下载pymongo库 pip install pymongo然后在在python程序中我们可以这样连接MongoDB数据库…

红队内网攻防渗透:内网渗透之内网对抗:横向移动篇Kerberos委派安全非约束系约束系RBCD资源系Spooler利用

#委派安全知识点 委派是一种域内应用模式,是指将域内用户账户的权限委派给服务账号,服务账号因此能以用户的身份在域内展开活动(请求新的服务等),类似于租房中介房东的关系去理解。 域委派分类: 1、非约束委派(Unconstrained Delegation, UD) 2、约束委派(Constrained D…

【Linux】使用 rz 和 sz 命令在 Linux 中进行文件传输

那年夏天我和你躲在 这一大片宁静的海 直到后来我们都还在 对这个世界充满期待 今年冬天你已经不在 我的心空出了一块 很高兴遇见你 让我终究明白 回忆比真实精彩 🎵 王心凌《那年夏天宁静的海》 在 Linux 系统中,rz 和 sz 是两个用…

深度神经网络:解锁智能的密钥

深度神经网络:解锁智能的密钥 在人工智能的浩瀚星空中,深度神经网络(Deep Neural Networks, DNNs)无疑是最耀眼的那颗星。它以其强大的学习能力、高度的适应性和广泛的应用场景,成为了我们解锁智能世界的一把密钥。本…

[个人感悟] MySQL应该考察哪些问题?

前言 MySQL作为SQL类型基础典型, 通常会问, 索引, 事务, SQL实战 这3个部分的问题. 问题 问题-架构 能聊聊MySQL的基本架构么? MySQL支持的存储引擎有哪些, 你主要使用过哪种? 说说你的理解? 问题-索引 什么是索引? MYSQL内所有的基本种类有哪些?不同分类…

IPD推行成功的核心要素(十三)IPD产品开发流程让企业正确地做事情

一个公司能否成功,取决于它适应市场需求和竞争环境变化的速度。公司需要不断创新,以符合客户期望并保持相关性。这意味着需要更快速地推出新产品和改进产品。简化的产品开发流程能够支持快速开发周期,帮助公司领先于市场,用优秀的…

浏览器进程与线程(4)

上一篇👉: 浏览器安全 文章目录 进程与线程1.进程与线程概念2.进程和线程的区别进程的特性线程的特性通信与同步 3.浏览器渲染进程中的线程4.什么是僵尸进程和孤儿进程5.死锁资源类型产生死锁的原因必要条件解决策略 6.进程通信方式7. 如何实现浏览器内多个标签页之…

植物大战僵尸杂交版2.1版本终于来啦!游戏完全免费

在这个喧嚣的城市里,我找到了一片神奇的绿色世界——植物大战僵尸杂交版。它不仅是一款游戏,更像是一扇打开自然奥秘的窗户,让我重新认识了植物和自然的力量。 植物大战僵尸杂交版最新绿色版下载链接: https://pan.quark.cn/s/d6…

如何在Rust中实现条件编译

目前正在学习使用Rust作后端开发,学习过程经常需要写一些调试代码,使用过程发现没有像#if 0 . . . #endif这样的条件编译。于是查阅资料,找到了替代方案,别说还挺好用。 目录 前言配置Cargo.toml文件代码中添加条件编译执行结果对…

MySQL的综合运用

MySQL版的葵花宝典,欲练此功,挥刀自。。。呃,,,说错了,是先创建两个表,分别是location表和store_info表 示例表为location表和store_info表,如下图所示: 操作一&#xf…

Layui为select绑定change事件/Layui中select绑定change事件不生效

1、问题概述? 在使用jQuery的时候,我们可以通过如下方式为select下拉框绑定change事件,但是在layui中不生效。 所以经常有人发问:Layui中为select绑定change事件不生效。 $(function(){//通过id为select绑定change事件$("…

【C++高阶】掌握AVL树:构建与维护平衡二叉搜索树的艺术

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C “ 登神长阶 ” 🤡往期回顾🤡:STL-> map与set 🌹🌹期待您的关注 🌹🌹 ❀AVL树 📒1. AVL树…

mysql5.7升级到mysql8.0遇坑

mysql5.7升级到mysql8.0发现生产环境服务会报错 Error querying database. Cause: java.sql.SQLSyntaxErrorException: FUNCTION GeomFromText does not exist 在MySQL 8.0中,GeomFromText函数已经被弃用,取而代之的是ST_GeomFromText函数。你可以将你…

JavaSE (Java基础):运算符

3 运算符 3.1 二元运算符 为什么下面这段代码中最后的语句中b元素要加(double)呢? 因为要计算10/40的话,他们都是int类型的在计算机中会取整,而计算机取整一般都是直接舍去小数点后面的数字,那么就会返回0&…