当前位置: 首页 > news >正文

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 这里视频教程是没有上述命令标红的,但是会报错,具体不详&#xff0c…...

开源视频监控管理平台国标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…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

synchronized 学习

学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

零基础设计模式——行为型模式 - 责任链模式

第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...