Ansible自动化运维学习——综合练习
目录
(一)练习一
1.新建一个role——app
2.创建文件
3.删除之前安装的httpd服务和apache用户
4.准备tasks任务
(1)创建组group.yml
(2)创建用户user.yml
(3)安装程序yum.yml
(4)修改模板httpd.conf.j2
(5)编写templ.yml
(6)编写start.yml
(7)编写copyfile.yml
(8)定义顺序main.yml
5.准备变量文件vars
(1)编写变量脚本——main.yml
6.准备触发器handlers
(1)编写脚本main.yml
7.编写playbook脚本调度任务
8.角色app目录结构
9.执行脚本
10.检查结果
(二)练习二——使用运算符//,设置缓存大小
1.准备工作
2.修改node141机器的内存
(1)node141现在的内存
(2)修改node141的内存
(3)修改node141后内存
(4)查看node142的内存
3.编辑配置文件
4.准备tasks任务
(1)编写yum.yml
(2)编写start.yml
(3)编写templ.yml
(4)编写main.yml
5.角色memcached目录结构
6.编写playbook脚本
7.检查并执行playbook脚本
8.脚本执行结果
(三)推荐资料
(一)练习一
1.新建一个role——app
[root@ansible145 ansible]# cd roles/[root@ansible145 roles]# rm -rf app/[root@ansible145 roles]# mkdir app[root@ansible145 roles]# cd app/
2.创建文件
[root@ansible145 app]# mkdir tasks templates vars handlers files[root@ansible145 app]# tree
.
├── files
├── handlers
├── tasks
├── templates
└── vars5 directories, 0 files
3.删除之前安装的httpd服务和apache用户
ansible all -m shell -a 'rm -rf /data/*'ansible all -m shell -a 'userdel -r apache'ansible all -m shell -a 'yum -y remove httpd'ansible all -m shell -a 'rpm -q httpd'
4.准备tasks任务
(1)创建组group.yml
- name: create groupgroup: name=app system=yes gid=123
(2)创建用户user.yml
- name: create useruser: name=app system=yes shell=/sbin/nologin uid=123
(3)安装程序yum.yml
- name: install packageyum: name=httpd
(4)修改模板httpd.conf.j2
[root@ansible145 tasks]# cp /etc/httpd/conf/httpd.conf ../templates/httpd.conf.j2[root@ansible145 tasks]# vim ../templates/httpd.conf.j241 #Listen 12.34.56.78:80
42 Listen {{ ansible_processor_vcpus*10 }}
43 #
44 # Dynamic Shared Object (DSO) Support64 #
65 User {{ username }}
66 Group {{ groupname }}
67
68 # 'Main' server configuration
(5)编写templ.yml
- name: copy conftemplate: src=httpd.conf.j2 dest=/etc/httpd/conf/httpd.confnotify: restart service
(6)编写start.yml
- name: start serviceservice: name=httpd state=started enabled=yes
(7)编写copyfile.yml
- name: copy confcopy: src=vhosts.conf dest=/etc/httpd/conf.d/ owner=app
(8)定义顺序main.yml
- include: group.yml
- include: user.yml
- include: yum.yml
- include: templ.yml
- include: copyfile.yml
- include: start.yml
5.准备变量文件vars
(1)编写变量脚本——main.yml
[root@ansible145 vars]# vim main.ymlusername: app
groupname: app
6.准备触发器handlers
(1)编写脚本main.yml
[root@ansible145 app]# vim handlers/main.yml- name: restart serviceservice: name=httpd state=restarted
7.编写playbook脚本调度任务
[root@ansible145 ansible]# vim app_role.yml- hosts: websrvsremote_user: rootroles:- app
8.角色app目录结构

9.执行脚本
[root@ansible145 ansible]# ansible-playbook app_role.yml
10.检查结果
[root@node141 ~]# ss -ntl
users:(("httpd",pid=10792,fd=4),("httpd",pid=10791,fd=4),("httpd",pid=10790,fd=4),("httpd",pid=10789,fd=4),("httpd",pid=10788,fd=4),("httpd",pid=10787,fd=4))[root@node141 ~]# getent passwd app
app:x:123:100::/home/app:/sbin/nologin[root@node141 ~]# getent group app
app:x:123:[root@node141 ~]# ps aux | grep app
app 10788 0.0 0.1 221948 2968 ? S 12:01 0:00 /usr/sbin/httpd -DFOREGROUND
app 10789 0.0 0.1 221948 2968 ? S 12:01 0:00 /usr/sbin/httpd -DFOREGROUND
app 10790 0.0 0.1 221948 2968 ? S 12:01 0:00 /usr/sbin/httpd -DFOREGROUND
app 10791 0.0 0.1 221948 2968 ? S 12:01 0:00 /usr/sbin/httpd -DFOREGROUND
app 10792 0.0 0.1 221948 2968 ? S 12:01 0:00 /usr/sbin/httpd -DFOREGROUND
root 10850 0.0 0.0 112660 964 pts/1 S+ 12:08 0:00 grep --color=auto app
(二)练习二——使用运算符//,设置缓存大小
要求每台被控机memcached的缓存空间为物理内存的1/4
1.准备工作
[root@ansible145 roles]# cd memcached/[root@ansible145 memcached]# mkdir tasks templates[root@ansible145 memcached]# yum install -y memcached[root@ansible145 memcached]# cat /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
2.修改node141机器的内存
(1)node141现在的内存

(2)修改node141的内存

(3)修改node141后内存

(4)查看node142的内存

3.编辑配置文件
[root@ansible145 memcached]# cp /etc/sysconfig/memcached templates/memcached.j2[root@ansible145 memcached]# vim templates/memcached.j2 PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="{{ ansible_memtotal_mb//4 }}"
OPTIONS=""
4.准备tasks任务
(1)编写yum.yml
- name: install packageyum: name=memcached
(2)编写start.yml
- name: start serviceservice: name=memcached state=started enabled=yes
(3)编写templ.yml
- name: copy conftemplate: src=memcached.j2 dest=/etc/sysconfig/memcached
(4)编写main.yml
- include: yum.yml
- include: templ.yml
- include: start.yml
5.角色memcached目录结构

6.编写playbook脚本
[root@ansible145 ansible]# vim memcached_role.yml- hosts: websrvsremote_user: rootroles:- memcached
7.检查并执行playbook脚本
[root@ansible145 ansible]# ansible-playbook -C memcached_role.yml[root@ansible145 ansible]# ansible-playbook memcached_role.yml
8.脚本执行结果
(三)推荐资料
http://galaxy.ansible.com
https://galaxy.ansible.com/explore#/
http://github.com/
http://ansible.com.cn/
https://github.com/ansible/ansible
https://github.com/ansible/ansible-examples
相关文章:
Ansible自动化运维学习——综合练习
目录 (一)练习一 1.新建一个role——app 2.创建文件 3.删除之前安装的httpd服务和apache用户 4.准备tasks任务 (1)创建组group.yml (2)创建用户user.yml (3)安装程序yum.yml (4)修改模板httpd.conf.j2 (5)编写templ.yml (6)编写start.yml (7)编写copyfile.yml (8…...
Java中正则表达式
一、概念 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。在众多语言中…...
13 硬链接和软链接
13.1 硬链接和软链接的区别 硬链接:A---B,假设B是A的硬链接,那么只要存在一个,无论删除哪一个,文件都能访问得到。 软链接:类似于快捷方式,删除源文件,快捷方式就访问不了。 13.2 创…...
智能合约安全审计
智能合约安全审计的意义 智能合约审计用于整个 DeFi 生态系统,通过对协议代码的深入审查,可以帮助解决识别错误、低效代码以及这些问题。智能合约具有不可篡改的特点,这使得审计成为任何区块链项目安全流程的关键部分。 代码审计对任何应用…...
矩阵置零(力扣)思维 JAVA
给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]] 输入:matrix [[0,1,2,0],[3,4,5,2],[…...
centos制作openssh 9.3p2 rpm包
标题使用源码制作openssh 9.3p2 的rpm包 准备: 操作系统:CentOS Linux release 7.4.1708 (Core) #测试发现rpm包要在什么系统安装需要就需要在什么系统上制作 工具软件:rpm-build 源码文件:openssh-9.3p2.tar.gz x11-ssh-askpas…...
uni-app:切换页面刷新,返回上一页刷新(onShow钩子函数的使用)
切换页面刷新:通过onShow()便可实现 返回上一页通过uni.navigateBack({delta: 1});实现 以返回上一页刷新为例 从B页面返回上一页到A页面 在A页面写入方法refreshHandler() methods: { // 执行刷新逻辑refreshHandler() {uni.request({url: getApp().globalData.…...
全志F1C200S嵌入式驱动开发(调整cpu频率和dram频率)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 f1c200s默认的cpu频率是408M,默认的dram频率是156M。这两个数值,坦白说,都算不上特别高的频率。因为我们的晶振是24M输入,所以408/24=17,相当于整个cpu的频率只是晶振倍频了17…...
idea 设置了 vm options后无法启动
今天想扩展ideaj的JVM 设置了 vm options后无法启动 找了很久,重新卸载后安装也没有用 后面直接打开idea的bat文件 找到自己idea使用的.vmoptions文件,我是因为之前idea有缓存,一直用的我修改的文件,后面删了就可以启动了...
TPS54620RHLR是一款同步降压转换器
TPS54620RHLR是一款同步降压转换器,通过高效率和集成高压侧和低压侧MOSFET,为小型设计进行了优化。通过电流模式控制实现了进一步的空间节省,从而减少了元件数量,并通过选择高开关频率,减少了电感器的占地面积。输出电…...
主机漏洞利用演示MS17-010(永恒之蓝)
ms17-010危害:对被攻击方的电脑造成蓝屏! 申明:本篇文章的用意仅做学习使用 网络搭建环境: 软件:Vmware Workstation 17 攻击机:Kali 靶机环境:Windows 7 Nmap软件的基本功能: …...
2023年第六届河北省研究生数学建模竞赛题目B题Python求解代码
2023年第六届河北省研究生数学建模竞赛题目B题 本文文档与代码视频讲解与下载:【2023河北省研究生数学建模竞赛B题数据集和代码-哔哩哔哩】 https://b23.tv/weulGAO 光伏电池的异常检测与发电产能预测在碳达峰-碳中和的战略背景下,我国的光伏发电技术发…...
【三维点云处理】顶点、面片、邻接矩阵、邻接距离矩阵以及稀疏存储概念
文章目录 vts和faces基础知识vertices-节点(3是点的三维坐标)faces-面片(3是构成三角形面片的3个点) 邻接矩阵邻接距离矩阵(NN500)稀疏矩阵 vts和faces基础知识 vertices-节点(3是点的三维坐标…...
ansible 中的fetch模块的作用是什么
Ansible中的fetch模块用于从远程主机上复制文件到控制主机上。 fetch模块允许用户在远程主机上复制文件或目录,并将其下载到控制主机上的指定位置。它可以在执行Playbook期间执行此操作,也可以在Ad-Hoc命令中使用。 fetch模块的一些常见用途包括&#…...
Zabbix-6.4.4部署及监控配置
一、目标 对zabbix-6.4.4版本进行调研。了解并测试zabbix-6.4.4部署以及监控配置。 二、过程 前言:最新版本的zabbix-6.4.4的要求有所增加,配置要求如下: MySQL版本:8.0.X PHP版本:7.4.X libXML:2.6.1…...
解决 npm ERR! missing script: build 错误的方法
系列文章目录 文章目录 系列文章目录前言一、错误原因二、解决方法:三、注意事项:总结 前言 在使用 npm 进行前端项目构建时,有时会遇到错误信息 “npm ERR! missing script: build”,该错误通常发生在没有定义构建脚本时。本文将…...
json-server创建静态服务器2
上次写的 nodejs创建静态服务器 这次再来个v2.0 利用json-server很方便就可以实现。 vscode打开文件夹,文件夹所在终端: json-server.cmd --watch db.json 这里视频教程是没有上述命令标红的,但是会报错,具体不详,…...
开源视频监控管理平台国标GB28181视频EasyCVR电子地图功能展示优化
视频监控综合管理平台EasyCVR可提供的视频能力包括:视频监控直播、云端录像、云存储、录像检索与回看、告警上报、平台级联、云台控制、语音对讲、电子地图、H.265自动转码等,也具备接入AI智能分析的能力。 视频汇聚平台EasyCVR可拓展性强、视频能力灵活…...
端口复用与重映射
端口复用和重映射 STM32F1有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。 大家都知道,MCU都有串口…...
ros2 launch 集合 gazebo yolov8 rviz2
目录 1. ros2 yolov8 检测需要以来一些库,分别是:rclpy cv_bridge std_msgs sensor_msgs sensor_msgs_py vision_msgs 2. 创建一个新的功能包 3. 建立 yolo_launch.py 里面先加载gazebo和rviz2,在创建好本地的yolov8的node文件后也加入进来。 4. 创建好本地的yol…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
STL 2迭代器
文章目录 1.迭代器2.输入迭代器3.输出迭代器1.插入迭代器 4.前向迭代器5.双向迭代器6.随机访问迭代器7.不同容器返回的迭代器类型1.输入 / 输出迭代器2.前向迭代器3.双向迭代器4.随机访问迭代器5.特殊迭代器适配器6.为什么 unordered_set 只提供前向迭代器? 1.迭代器…...
安宝特案例丨寻医不再长途跋涉?Vuzix再次以AR技术智能驱动远程医疗
加拿大领先科技公司TeleVU基于Vuzix智能眼镜打造远程医疗生态系统,彻底革新患者护理模式。 安宝特合作伙伴TeleVU成立30余年,沉淀医疗技术、计算机科学与人工智能经验,聚焦医疗保健领域,提供AR、AI、IoT解决方案。 该方案使医疗…...
【SSM】SpringMVC学习笔记7:前后端数据传输协议和异常处理
这篇学习笔记是Spring系列笔记的第7篇,该笔记是笔者在学习黑马程序员SSM框架教程课程期间的笔记,供自己和他人参考。 Spring学习笔记目录 笔记1:【SSM】Spring基础: IoC配置学习笔记-CSDN博客 对应黑马课程P1~P20的内容。 笔记2…...
5. TypeScript 类型缩小
在 TypeScript 中,类型缩小(Narrowing)是指根据特定条件将变量的类型细化为更具体的过程。它帮助开发者编写更精确、更准确的代码,确保变量在运行时只以符合其类型的方式进行处理。 一、instanceof 缩小类型 TypeScript 中的 in…...
基于python大数据的水文数据分析可视化系统
博主介绍:高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了多年的设计程序开发,开发过上千套设计程序,没有什么华丽的语言,只有实实在…...



