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
└── vars

5 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 group
  group: name=app system=yes gid=123

(2)创建用户user.yml

- name: create user
  user: name=app system=yes shell=/sbin/nologin uid=123

(3)安装程序yum.yml

- name: install package
  yum: 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.j2

41 #Listen 12.34.56.78:80
42 Listen {{ ansible_processor_vcpus*10 }}
43 #
44 # Dynamic Shared Object (DSO) Support

64 #
65 User {{ username }}
66 Group {{ groupname }}
67 
68 # 'Main' server configuration

(5)编写templ.yml

- name: copy conf
  template: src=httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf
  notify: restart service

(6)编写start.yml

- name: start service
  service: name=httpd state=started enabled=yes

(7)编写copyfile.yml

- name: copy conf
  copy: 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.yml

username: app
groupname: app

6.准备触发器handlers

(1)编写脚本main.yml

[root@ansible145 app]# vim handlers/main.yml

- name: restart service
  service: name=httpd state=restarted

7.编写playbook脚本调度任务

[root@ansible145 ansible]# vim app_role.yml

- hosts: websrvs
  remote_user: root
  roles:
    - 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 package
  yum: name=memcached

(2)编写start.yml

- name: start service
  service: name=memcached state=started enabled=yes

(3)编写templ.yml 

- name: copy conf
  template: 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: websrvs
  remote_user: root
  roles:
   - 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TEE GP(Global Platform)技术委员会及中国任务小组

TEE之GP(Global Platform)认证汇总 一、TEE GP技术委员会 二、GP中国任务小组 参考: GlobalPlatform Certification - GlobalPlatform

基于C#的无边框窗体动画效果的完美解决方案 - 开源研究系列文章

最近在整理和编写基于C#的WinForm应用程序,然后碰到一个其他读者也可能碰到的问题,就是C#的Borderless无边框窗体的动画效果问题。 在Visual Studio 2022里,C#的WinForm程序提供了Borderless无边框窗体的样式效果,但是它没提供在无…

用QFramework来重构 祖玛游戏

资料 Unity - 祖玛游戏 GitHub 说明 用QF一个场景就够了,在UIRoot下切换预制体达到面板切换。 但测试中当然要有一个直接跳到测试面板的 测试脚本,保留测试Scene(不然初学者也不知道怎么恢复测试Scene),所以全文按S…

经营在线业务的首选客服工具--SS客服

随着网购正在快速取代传统零售业,各行各业的企业都在大力发展电子商务以取悦客户。但是,有这么多可用的电子商务平台,选择一款符合自己发展的平台确实不容易。电子商务平台不仅是企业在线销售产品和服务的地方,也是他们管理日常运…

按键消抖实现

一、使用状态机实现按键消抖 可将按键按下整个过程看做四个状态:按键空闲状态,按下抖动状态,稳定按下状态,释放抖动状态。 代码实现: /** Description: 状态机方式按键消抖(多按键)* Author: Fu Yu* Date: 2023-07-27…

听GPT 讲K8s源代码--pkg(八)

k8s项目中 pkg/kubelet/envvars,pkg/kubelet/events,pkg/kubelet/eviction,pkg/kubelet/images,pkg/kubelet/kubeletconfig这些目录都是 kubelet 组件的不同功能模块所在的代码目录。 pkg/kubelet/envvars 目录中包含了与容器运行…

服务器用友数据库中了locked勒索病毒后怎么解锁数据恢复

随着信息技术的迅速发展,服务器成为现代企业中不可或缺的重要设备。然而,由于网络安全风险的存在,服务器在日常运作中可能遭受各种威胁,包括恶意软件和勒索病毒攻击。近日,我们收到很多企业的求助,企业的用…

Jenkins+Gitlab+Maven集成CI/CD

MavenGitlab集成 配置好下列环境 # Java环境 JAVA_HOME /usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64# Maven环境 MAVEN_HOME /usr/local/maven# Maven环境变量 PATHEXTRA $MAVEN_HOME/bin1. 配置settings.xml路径 2. 安装maven插件 创建项目 配置gitlab地址和指…

19.2:纸牌问题

给定一个整型数组arr,代表数值不同的纸牌排成一条线 玩家A和玩家B依次拿走每张纸牌 规定玩家A先拿,玩家B后拿 但是每个玩家每次只能拿走最左或最右的纸牌 玩家A和玩家B都绝顶聪明 请返回最后获胜者的分数 方法一:暴力解法 自然智慧。 pack…

Redis 基础知识和核心概念解析:探索 Redis 的数据结构与存储方式

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

基于解析法和遗传算法相结合的配电网多台分布式电源降损配置(Matlab实现)

目录 1 概述 2 数学模型 2.1 问题表述 2.2 DG的最佳位置和容量(解析法) 2.3 使用 GA 进行最佳功率因数确定和 DG 分配 3 仿真结果与讨论 3.1 33 节点测试配电系统的仿真 3.2 69 节点测试配电系统仿真 4 结论 1 概述 为了使系统网损达到最低值&a…

1200*B. Vanya and Lanterns

Examples input 7 15 15 5 3 7 9 14 0 output 2.5000000000 input 2 5 2 5 output 2.0000000000 解析&#xff1a; 最大距离即为每相邻两盏灯之间的最大距离/2 注意起点没有灯&#xff0c;终点可能有灯&#xff0c;需要分别判断 #include<bits/stdc.h> using nam…

Cesium态势标绘专题-直线箭头(标绘+编辑)

标绘专题介绍:态势标绘专题介绍_总要学点什么的博客-CSDN博客 入口文件:Cesium态势标绘专题-入口_总要学点什么的博客-CSDN博客 辅助文件:Cesium态势标绘专题-辅助文件_总要学点什么的博客-CSDN博客 本专题没有废话,只有代码,代码中涉及到的引入文件方法,从上面三个链…

大语言模型LLM

目录 一、语言模型的发展 语言模型&#xff08;Language Model&#xff0c;LM&#xff09;目标是建模自然语言的概率分布&#xff0c;具体目标是构建词序列w1,w2,...,wm的概率分布&#xff0c;即计算给定的词序列作为一个句子出现可能的大小P(w1w2...wm)。但联合概率P的参数量…

0-虚拟机补充知识

虚拟机克隆 如果想要构建服务器集群&#xff0c;没有必要一台一台的去进行安装&#xff0c;只要通过克隆就可以。 快速获得多台服务器主要有两种方式&#xff0c;分别为&#xff1a;直接拷贝操作和vmware的克隆操作 直接拷贝 将之前安装虚拟机的所有文件进行拷贝&#xff0…

git撤销上一次的commit

一行命令 git reset --soft HEAD^如果在vscode上面&#xff0c;就可以

Oracle 截取指定字符到目标串的末尾

SQL&#xff1a; SELECT-- 目标字符串 目标字符串 指定符号 最后一个 最后一个字符位置1 substr( HG/2106010103/YG\FJSJ\SXKTFJ\FJ03_JPHD, instr( HG/2106010103/YG\FJSJ\SXKTFJ\FJ03_…

transformer 笔记

目录 目前在NLP领域当中&#xff0c;主要存在三种特征处理器——CNN、RNN 以及 Transformer&#xff0c;当前Transformer的流行程度已经大过CNN和RNN&#xff0c;它抛弃了传统CNN和RNN神经网络&#xff0c;整个网络结构完全由Attention机制以及前馈神经网络组成。 Transformer…

【蓝图】p40-p43对象引用、变量有效性、实现键盘控制物体自转、简单点名系统

p40-p43对象引用、变量有效性、实现键盘控制物体自转、简单点名系统 p40对象引用、变量有效性p41实现键盘控制物体自转创建bool值控制旋转实现通过键盘控制自转 p42p43简单点名系统Get All Actors Of Class&#xff08;获得场景中所有该类的actor演员&#xff09;getFor Each L…

Dart - 语法糖(持续更新)

文章目录 前言开发环境中间表示语法糖1. 操作符/运算符&#xff08;?./??/??/../?../.../...?&#xff09;2. 循环&#xff08;for-in&#xff09;3. 函数/方法&#xff08;>&#xff09;4. 关键字&#xff08;await for&#xff09; 最后 前言 通过将dill文件序列化…