ansible自动化运维(6)

手把手教你用ChatGLM-6B搭建智能运维助手(附Ansible自动化脚本) 本文详细介绍了如何利用ChatGLM-6B开源模型与Ansible搭建智能运维平台,实现从问题发现到自动修复的闭环。通过分层架构设计、模型微调及安全执行体系,显著提升运维效率,将故障修复时间从53分钟缩短至7分钟。 阅读详情

一. 利用角色简化playbook
ansible角色具有下列优点:

1.角色可以把内容分组,容易复用
2.可以用角色定义系统基本信息:web服务器、数据库服务器等
3.角色可以使大型项目易管理
4.角色可以由不同人并行开发

ansible角色会把不同功能的playbook分开,一个标准的角色含有下列子目录:
defaults:其中的main.yml包含角色变量的默认值#在所有变量中优先级最低
files:包含角色任务引用的静态文件
handlers:主要定义处理程序
meta:角色相关信息,如作者、许可证等
tasks:定义任务
templates:任务引用的jinja2模板
tests:可以包含清单和test.yml的playbook,用于测试
vars:定义角色的变量

在playbook中使用ansible角色
如:

---
- hosts: www.example.com
  roles:
    - role1
    - role2
      var1: var1
      var2: var2

#为role2定义了两个变量,任何defaults和vars中的变量都会被覆盖
控制执行顺序
有时需要在角色之前或之后执行一些任务:
关键字:
之前:pre_tasks
之后:post_tasks
二.利用系统角色重用内容

安装系统角色
[root@workstation~]#yum install -y rhel-system-roles

yum install -y rhel-system-roles

安装好的角色位于:
[root@workstation~]#ls -l /usr/share/ansible/roles
其中的内容(查看网络角色)
[root@workstation~]#ls -l /usr/share/ansible/roles/rhel-system-roles.network
时间同步角色示例
查看系统中有哪些角色可以使用
[root@workstationroles]#ansible-galaxy list
创建目录保存变量
[root@workstationroles]#mkdir -p group_vars/all
查看帮助
[root@workstationroles]#cat /usr/share/doc/rhel-system-roles/timesync/README.md
时区设置的example

[root@workstationall]#ansible-doc timezone | grep -A 4 "EXAMPLES"
EXAMPLES:
-name:SettimezonetoAsia/Tokyo
timezone:
name:Asia/Tokyo

清单和配置文件
[root@workstationroles]#cat ansible.cfg
[defaults]
inventory=./inventory
[root@workstationroles]#cat inventory
[group1]
servera.lab.example.com
[group2]
serverb.lab.example.com
[groups:children]
group1
group2
修改主playbook
[root@workstationroles]#cat configure_time.yml

---
- name: Time Sync
  hosts: groups
  roles:
    - rhel-system-roles.timesync
  post_tasks:
    - name: Set Timezone
      timezone:
        name: "{{ host_timezone }}"
      notify: restart crond
  handlers:
    - name: restart crond
      service:
        name: crond
        state: restarted

创建针对主机组的变量目录
[root@workstationroles]#mkdir -p group_vars/{group1,group2}
新建时间yml文件并写入
[root@workstationroles]#cat group_vars/group1/timezone.yml
host_timezone: Asia/Shanghai
[root@workstationroles]#cat group_vars/group2/timezone.yml
host_timezone: Europe/London
检测和运行
[root@workstationroles]#ansible-playbook --syntax-check configure_time.yml
[root@workstationroles]#ansible-playbook configure_time.yml
三.创建角色
角色创建流程:分三个步骤

1.创建角色目录结构
2.定义角色内容
3.在playbook中使用角色

创建角色框架
[root@workstationmnt]#cd project/
[root@workstationproject]#mkdir roles
[root@workstationproject]#cd roles/
[root@workstationroles]#ansible-galaxy init my_role       #创建

[ans@node1my_role]$tree my_role
my_role                   #具体的角色项目名称,比如nginx、tomcat、php(自由设置)
├──defaults               #用于为当前角色设定默认变量,此目录应当包含一个main.yml文件
│└──main.yml              #main.yml,类似代码中的主函数,进行统一管理
├──files                  #用来存放由copy模块或script模块等模块调用的文件

├──handlers               #用于定义此角色中触发条件时执行的动作,此目录应当包含一个
main.yml文件
│└──main.yml
├──meta                   #用于定义此角色的特殊设定及其依赖关系,此目录应当包含一个
main.yml文件
│└──main.yml
├──README.md              #说明文件
├──tasks                  #用于定义当前角色的任务列表,此目录应当包含一个main.yml文件
│└──main.yml
├──templates              #用来存放jinjia2模板,template模块会自动在此目录中寻找
jinjia2                   模板文件
├──tests                  #用于存放测试role本身功能的playbook和主机定义文件,在开发测试阶段比较常用,此目录应当包含一个main.yml文件和自身资源设定
invetory
│├──inventory
│└──test.yml
└──vars                    #用于定义此角色用到的变量,此目录应当包含一个main.yml文件
└──main.yml

创建并初始化
[root@workstation~]#mkdir role-create
[root@workstation~]#cd role-create/
[root@workstationrole-create]#mkdir -v roles;cd roles
mkdir:created directory'roles'
[root@workstationroles]#ansible-galaxy init myvhost
-myvhostwascreatedsuccessfully
配置tasks的play
[root@workstationtasks]#vim main.yml
'安装、启动和配置虚拟主机'

---
# tasks file for myvhost
- name: Install httpd 
  yum:
    name: httpd
    state: latest
- name: Start and Enabled httpd
  service:
    name: httpd
    state: started
    enabled: true
- name: Install vhost file
  template:
    src: vhost.conf.j2
    dest: /etc/httpd/conf.d/vhost.conf
    owner: root
    group: root
    mode: 0644
  notify:
    - restart httpd

编写处理程序
[root@workstationhandlers]#vim main.yml

---
# handlers file for myvhost
- name: restart httpd
  service:
    name: httpd
    state: restarted

编写html文件
[root@workstationrole-create]#mkdir -p files/html
[root@workstationrole-create]#vim files/html/index.html
www.westos.org
配置模板
[root@workstationtemplates]#vim vhost.conf.j2

<VirtualHost *:80>
        DocumentRoot /www
        ServerName www.westos.org
</VirtualHost>

<VirtualHost *:80>
        DocumentRoot /bbs
        ServerName bbs.westos.org
</VirtualHost>

编写使用roles的playbook
[root@workstationrole-create]#vim use_vhost_role.yml

---
- name: use myvhost
  hosts: webservers
  pre_tasks:
    - name: pre_tasks message
      debug:
        msg: “Ensure web server configuration”
  roles:
    - myvhost
  post_tasks:
    - name: Configure html
      copy:
        src: files/html/
        dest: "/var/www/vhosts/{{ ansible_hostname }}"
    - name: post_tasks message
      debug:
        msg: "Web server is configured."

'这里使用的主机清单是系统默认的'
 

ansible自动化运维工具----用ansible将zabbix-agent监控平台实现出来(6) 在我之前的博客里面有讲过了模块,讲过了ansible-doc,讲过了playbook,今天我们将这些结合起来 zabbix监控需要用到数据库、服务端、以及被监控的主机,之前我们将数据库和服务端是在一台主机上做的,今天将zabbix监控交给ansible自动化运维工具去做,将我们之前通过命令的方式准备的监控写入playbook。 由于我们在写playbook时,需要缩进对齐,但是一个tab不是两个空... 阅读详情

相关推荐

ansible-raspberry-systemd-timesyncd:Ansible角色,在Raspberry Pi OS上管理systemd-timesyncd

角色:systemd-timesyncd Ansible角色,在Raspberry Pi OS上管理 。 安装 $ ansible-galaxy install escalate.timesyncd 角色变量 请参阅以获取可以覆盖的变量的完整列表。 依存关系 该角色依赖于以下依赖关系: 角色:无 集合: 剧本范例 - hosts: all roles: - role: escalate.timesyncd tags: timesyncd 执照 麻省理工学院

ansible(6)

##########利用角色简化 playbook########## ansible 角色具有下列优点: 1.角色可以把内容分组,容易复用 2.可以用角色定义系统基本信息:web 服务器、数据库服务器等 3.角色可以使大型项目易管理 4.角色可以由不同人并行开发 ansible 角色会把不同功能的 playbook 分开,一个标准的角色含有下列子目录: defaults:其中的 m...

weixin_46102303的博客 193

主流仿真软件Sigrity/HFSS/Siwave/Hyperlynx/ADS差异

在电子设计自动化(EDA)领域,各种仿真软件如Cadence Sigrity、Mentor Graphics的HyperLynx、Keysight的ADS以及ANSYS的SIwave等,都广泛应用于不同的应用场景中。综上所述,这些EDA仿真软件在各自的应用场景中发挥着重要作用,帮助工程师在设计阶段就能够评估和优化电子产品的性能,提高设计的可靠性和效率。:Sigrity由全球最大的EDA公司Cadence推出,Cadence还推出了Orcad和Allegro等著名软件。:由安捷伦(现是德科技)公司开发。

Geektec的专栏 9402

角色简化playbook

好

kx0822的博客 322

Hive数据迁移

【迁移背景】 本次需要将老集群的hive数据(共30多张表)迁移至新集群中。 老集群版本为CDH5.13,未启用kerberos; 新集群版本为CDH5.14,启用了kerberos。 由于cloudera官方文档说明,在5.x的版本不支持从未启用kerberos的集群与启用了kerberos的集群之间的数据复制。因此无法通过bdr方式进行数据同步。于是采用手工方式进行测试验证。 第一步...

wangkuangood3200的专栏 469

永磁同步电机矢量控制(十一)——基于损耗模型的PMSM效率优化策略

本文深入探讨了永磁同步电机(PMSM)基于损耗模型的效率优化策略,详细分析了铜损和铁损的构成与建模方法,并提出了最小损耗控制策略的实现方案。通过与传统MTPA控制的对比,展示了在不同工况下的效率提升效果,同时讨论了工程实现中的关键问题与解决方案,为PMSM的高效运行提供了理论支持和实践指导。

7z8x2c4v6b9的博客 231

ansible管理大项目之系统角色的简单使用

文章目录红帽企业Linux系统角色利用角色配置时间同步SELINUX角色示例 红帽企业Linux系统角色 RHEL7.4开始,操作系统随附了多个Ansible角色,作为rhel-system-roles软件包的一部分。在RHEL8中,该软件包可以从AppStream中获取。 名称 状态 角色描述 rhel-system-roles.kdump 全面支持 配置kdump崩溃恢复服务 rhel-system-roles.network 全面支持 配置网络接口 rhel-system-ro

满堂花醉三千客,一剑霜寒十四州 546

RAP 语义键:让 UUID 世界变得可读、可导航、可校验

RAP 语义键的核心价值与实现要点 语义键(Semantic Key)是 ABAP RAP 模型中连接技术实现与业务体验的关键设计:通过为实体指定一组业务可读的标识字段(如订单号、物料编码等),在保持技术主键(如UUID)不变的同时,显著提升用户界面的可读性和导航体验。 主要优势: 提升UI可读性:Fiori元素会突出显示语义键字段,帮助用户快速识别关键业务数据 改善导航体验:OData URL会使用可读的语义键而非技术ID,便于分享和排查问题 降低沟通成本:业务人员能准确引用有意义的业务标识而非技术ID

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 153

ansible角色配置时间同步

安装系统角色 进入安装系统角色的位置 时区同步 运行且查看结果

dabaohjl的博客 803

网红商品数据抓取:基于Python的高效爬虫实战

本篇博客介绍了从爬取到存储、分析和可视化网红商品数据的完整流程。通过Python的强大生态,我们能够轻松完成复杂的数据抓取任务。在实际应用中,还可以将此爬虫与机器学习模型结合,进一步挖掘数据价值。

2201_76125261的博客 1476

Python蓝色跳动的爱心(完整代码)

Python语言实现蓝色跳动的爱心的完整代码。 代码分析 这段代码使用了 库来创建一个动态的爱心图案,并在屏幕上显示带有动态效果的“我爱你”字样。以下是对这段代码的详细分析: 用于创建图形用户界面(GUI)。 用于生成随机数,主要用于控制爱心图案的扩散效果。 中的 , , , 用于数学计算,生成爱心形状和扩散效果。 包含了 等常量,用于控制控件的对齐方式。 2. 全局变量定义 , : 定义画布的大小。 , : 爱心的中心坐标。 : 用于定义爱心形状的缩放

AIGC 1918

Ansible系统角色的使用 角色结构创建方式

Ansible系统角色的使用 角色结构创建方式 1.系统角色的使用 1.1 timesync角色 //执行顺序和使用timesync角色 --- - hosts: mysql vars: timesync_ntp_servers: - hostname: time1.aliyun.com iburst: yes power: true pre_tasks: - debug: msg: 'k1' changed_when:

YangLuxxx123 447

Ollama系列---【ollama使用gpu运行大模型】

一、安装CudaToolkit 使用控制台命令查看当前显卡驱动中的cuda版本 nvidia-smi 二、下载CudaToolkit 注意:CudaToolkit版本要低于上面的显卡Cuda版本。 Cuda各版本下载地址:https://developer.nvidia.com/cuda-toolkit-archive 下载好之后,一路下一步,一直默认即可。 如果安装到了自定义的位置,记得加环...

-少年-的博客 7982

6-ansible自动化运维

文章摘要:本文介绍了Ansible自动化运维工具的安装配置与基础使用。内容包括:1) Ansible环境部署,包括软件安装、配置文件设置、主机清单定义和SSH免密登录配置;2) Ad-Hoc临时命令的使用方法,重点讲解了command、shell、script等常用模块;3) 文件管理操作,涵盖file模块的创建/删除文件目录、copy模块的文件分发以及fetch模块的文件收集;4) 系统管理功能,包括用户/组管理(user/group模块)、软件包管理(yum模块)等。文章通过具体命令示例展示了Ansib

u014533305的博客 357

【制作100个unity游戏之30】使用unity实现一款2d俯视角RPG战斗游戏,主要使用InputSystem+有限状态机+A*寻路实现(完结,附带项目源码)

【制作100个unity游戏之30】使用unity实现一款2d俯视角RPG战斗游戏,主要使用InputSystem+有限状态机+A*寻路实现

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 4653

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

6.6 自动化运维工具--ansible

它不会通过shell进行处理,比如$HOME和操作如"<",">","|",";shell模块可以在远程主机上调用shell解释器运行命令,支持shell的各种功能,例如管道等。/data/hello' #把本地root下的hello拷贝给远程主机的/data/hello。轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;#如果/data/aaa.jpg存在,则执行“cat /data/a”命令。#如果/data/aaa.jpg存在,则不执行“ls”命令。

guobaorourrr的博客 1001

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

ansible自动化运维工具(6)

目录 - 角色的使用利用角色简化 playbook1. ansible 角色优点2. 在 playbook 中使用 ansible 角色3. 创建角色3.1 角色创建流程3.2 创建角色框架3.3 练习 利用角色简化 playbook ansible可以自定义模块以便于调用,它也有一个特有的名称叫做角色 每个角色对应的服务可能不太一样,比如mysql,httpd,nginx,memcached ...

rrrr_ffff的博客 379

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Ansible第6篇【自动化运维工具-ansible特性和特点】

ansible特性及优点。

老韩的Linux云计算架构师进阶之路 544

运维自动化:使用Ansible批量部署和管理多节点Qwen3-ASR-0.6B模型服务

本文介绍了如何利用星图GPU平台,实现Qwen3-ASR-0.6B轻量级高性能语音识别模型WeBUI镜像的自动化部署。通过该平台,用户可快速搭建语音识别服务,并将其应用于会议记录实时转写、音视频内容生成字幕等场景,显著提升音频内容处理效率。

weixin_31176789的博客 91

Ansible自动化运维工具之常用模块使用实战(6)

Ansible自动化安装入门,看这一篇就够了(1):https://blog.youkuaiyun.com/qq_44895681/article/details/119539463 Ansible自动化运维工具之主机管理与自定义配置文件(2):https://blog.youkuaiyun.com/qq_44895681/article/details/119564183?spm=1001.2014.3001.5501 Ansible自动化运维工具之个性化定制SSH连接登录端口(3):https://blog.youkuaiyun.com/

非著名运维的博客 562

Linux6.2 ansible 自动化运维工具(机器管理工具)

ansible概述,ansible环境安装部署,ansible命令模块——command、shell、cron、user、group、copy、file、hostname、ping、yum、service/systemd、script、mount、archive、unarchive、replace、setup

wfwj_的博客 1355

rhel6.9安装ansible自动化运维工具

一、测试环境说明 1、系统:rhel6.9 2、ip地址:20.20.20.24 20.20.20.41 20.20.20.42 二、环境准备 1、关闭iptables防火墙、selinux 三、安装 # yum install -y ansible 四、修改配置文件 # cd /etc/ansible/ # vim hosts ...

weixin_33729196的博客 112

在CentOS7.6上安装自动化运维工具Ansible以及playbook案例实操

前言 Ansible是一款优秀的自动化IT运维工具,具有远程安装、远程部署应用、远程管理能力,支持Windows、Linux、Unix、macOS和大型机等多种操作系统。 下面就以CentOS 7.6为主机操作系统,演示安装Ansible工具的过程,将一个本地应用例子安装到远程主机,并在远程主机上运行应用。 一、环境准备 完成这个例子,最少需要两台主机,一台安装Ansible运...

275

自动化运维工具Ansible(6)Jinja2模板

什么是jinja2模板 jinja2是Python的全功能模板引擎Jinja2与Ansible啥关系 Ansible通常会使用jinja2模板来修改被管理主机的配置文件等…在saltstack中同样会使用到jinja2 如果在100台主机上安装nginx,每台nginx的端口都不一样,如何解决?Ansible如何使用Jinja2 使用Ansible的jinja2模板也就是使用template模块,该模块和copy模块一样,都是讲文件复制到远端主机上去,但是区别在于,template模块可以获取到文件中的变量

AHui_优快云的博客 488

Linux自动化运维工程师--(6)Ansible中的常用模块

Linux自动化运维工程师 实验所用系统为Redhat目录Linux自动化运维工程师--Ansible中的常用模块一、ansible实现管理的方式Ad-Hoc执行方式中如何获得帮助三、ansible命令运行方式及常用参数四、ansible的基本颜色代表信五、ansible中的常用模块1、command2、shell3、script4、copy5、fetch6、file7、archive8、unarchive9、hostname10、cron11、yum_repositor12、dnf Linux自动化运维工

weixin_43849813的博客 416
上一篇: ansible自动化运维(5)
下一篇: python --装饰器
FYRXP
博客等级 码龄7年 6粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值