自动化运维软件ansible

 一、ansible


基于python语言。简单快捷,被管理端不需要启服务。直接走ssh协议,需要验证,所以机器多的话速度会较慢。

 1、ansible环境搭建

 5.确认和配置yum源(需要epel源)

 免密登录复制的时候可以直接  写ip 不加参数-i

  2、服务器分组(主机清单)

 配置主服务器

 

 

 

 修改ssh服务的端口号22改成2222  vim /etc/ssh/sshd_config  修改后systemctl restart sshd

没有做免密登录的服务器可以指定用户名与密码

 小结:
主机清单的作用:服务器分组。

主机清单的常见功能:
1.可以通过IP范围来分,主机名名字的范围来分

2.如果ssh端口不是22的,可以传入新的端口。

3.没有做免密登录,可以传密码。

 3、ansible模块

 3.1、hostname

修改主机清单里的主机名称

hostname模块用于修改主机名(注意:它不能修改/etc/hosts文件)
https:/docs.ansible.com/ansible/latest/modules/hostname module.html#hostname-module

将其中一远程机器主机名修改为agent1.cluster.com
master# ansible 10.1.1.12 -m hostname -a 'name=agent1.cluster.com '

2基本格式为: ansible操作的机器名或组名 -m模块名 -a"参数1=值1参数2=值2
 

 用别名修改主机名称

 

3.2、 file模块(重点)


file模块用于对文件相关的操作(创建,删除,软硬链接等)
https://docs.ansible.com/ansible/latest/modules/file module.html#file-module

 absent缺席 

 src=/etc/fstab 是源链接  设置新的软链接路径path

 

这些参数可以在官方文档里面查

 3.3、copy模块(重点)

dns域名和主机名的区别是  域名是外网  主机名是内网  都需要解析 但是外网不用搭建dns服务器了
copy模块用于对文件的远程拷贝操作(如把本地的文件拷贝到远程的机器上)
https://docs.ansible.com/ansible/latest/modules/copy_module.html#copy-module

在master上准备一个文件,拷贝此文件到group1的所有机器上

 为了避免重要的配置文件被覆盖,最好备份

 

 

 

 

 因为copy模块无法自动删除多余的内容,所以为了保证目录的内容一致,必须先删除目录再copy

但是rsync -a --delete 可以实现自动同步并删除多余的内容

 

 

 

 fetch模块不能拷贝目录   主要是把其他服务器的日志文件整合在本地服务器方便查看

 

 

 remove 相当于userdel -r 

 uid只要是0就是root用户

 

 

 组冲突的时候(用户的组id是此组则无法删除)必须先删除bbb用户,必须家目录也删除remove=yes 才能删除aaa

时间任务的日志查看 cat  /var/log/cron

crontab -e  编辑时间任务  crontab -l 查看时间任务  默认是root用户

vim /var/spool/cron/user1  创建其他用户的定时任务

 

 

 

 

 copy模块也能实现复制 拷贝 

 

 

 删除不需要的yum源  path=/etc/yum.repos.d/

 装包

 

 

 

 

 

 

 

 

 在shell编程中,“EOF”通常与“<<”结合使用,“<<EOF”表示后续的输入作为子命令或子shell的输入,直到遇到“EOF”,再次返回到主调用shell,可将其理解为分界符(delimiter)。

  EOF是End of file的缩写,自定义终止符。

  既然是分界符,那么形式自然不是固定的,这里可以将”EOF“可以进行自定义,但是前后的”EOF“必须成对出现且不能和shell命令冲突。其使用形式如下:

交互式程序 << EOF
command1
command2
...
EOF

       ”EOF“中间的内容将以标准输入的形式输入到”交互式程序“,当shell看到”<<“知道其后面输入的分界符,当shell再次看到分界符时,两个分界符中间的部分将作为标准输入。

       "EOF"一般常和cat命令连用,通过cat配合重定向能够生成文件并追加操作,在它之前先熟悉几个特殊符号:

  • <:输入重定向
  • >:输出重定向
  • >>:输出重定向,进行追加,不会覆盖之前的内容
  • <<:标准输入来自命令行的一对分隔号的中间内容

 三、playbook

 同等的参数必须对齐

 

 执行剧本的命令:ansible-playbook 剧本  开机自启服务千万不能设置restarted,会话可能无法保持,就算配置文件是一样的也会断开连接

 可视化效果好

  •  幂等性,出现错误不需要重新推倒重做,也不用快照

 apache的端口是Listen 80

会话保持存储在redis  

练习:写一个playbook实现

1.配置yum
2.安装vsftpd包
3.修改配置文件(要求拒绝匿名用户登录)

4.启动服务并实现vsftpd服务开机自动启动


 

第一步:在主服务器安装vsftpd 并创建配置文件

 修改配置文件(要求拒绝匿名用户登录)

vim  /etc/vsftpd/vsftpd.conf

 

 

 

 ansible实现nfs服务器的自动挂载

 ... 三个点结束  千万注意---只能用在第一行,否则会报错

 

开启剧本playbook

 

 

 setup 这个包服务端也必须安装

vim  /etc/exports

 

 四、roles(难点)

roles介绍


roles(角色):就是通过分别将variables, tasks及handlers等放置于单独的目录中,并可以便捷地调用它们的一种机制。
假设我们要写一个playbook来安装管理lamp环境,那么这个playbook就会写很长。所以我们希望把这个很大的文件分成多个功能拆分,分成apache管理,php管理,mysql管理,然后在需要使用的时候直接调用就可以了,以免重复写。就类似编程里的模块化的概念,以达到代码复用的效果。

就相当于函数的封装并调用

 

 第一步:在 roles目录下创建roles结构

 报错是因为没有上层目录 需要+p  这里创建的是apache的roles

 lamp架构还需要创建mysql、php

 

 

 

 

 

 安装apache

 安装mariadb数据库

也是要切换到数据库mysql目录下vim  /tasks/main.yml

 安装php

 

 

 安装完成之后可以直接访问服务器ip/index.html 和test.php测试

ansible自动安装部署论坛discuz应用

 vim   /httpd/tasks/main.yml

 

 创建数据库并授权

vim  /mysql/files/create.sh

 在 mysql里面执行建库

vim  /mysql/tasks/main.yml

 ansible-playbook  /etc/ansible/playbook/lamp.yml

运行剧本文件之后查看数据库信息

 du  -sh  目录 查看目录 的具体大小 M

这个思路拷贝upload 费时间,不如直接拷贝压缩包过去

因为单个文件的拷贝速度快

 

 

 

 php模块里面还需要加php-mysql

 ansible自动部署lnmp架构

 

 

 {}这种写法是因为版本太老,所以可以用之前的写法 

 

 

 

 运维体系思路

 

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

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

相关文章

java的Lambda表达式与方法引用详解

1. 定义 Lambda 表达式&#xff0c;也可称为闭包&#xff0c;它是推动 Java 8 发布的最重要新特性。 Lambda 允许把函数作为一个方法的参数&#xff08;函数作为参数传递进方法中&#xff09;。 使用 Lambda 表达式可以使代码变的更加简洁紧凑。 1.1 通用定义 lambda 表达…

知识图谱实战应用4-知识图谱中寻找相似用户(协同过滤算法)

大家好&#xff0c;我是微学AI&#xff0c;今天给大家讲一下知识图谱中利用协同过滤算法寻找相似用户。大家会看到一个新的名词&#xff1a;“协同过滤”&#xff0c;下面来介绍一下协同过滤算法。 一、协同过滤算法 协同过滤算法是一种基于用户行为分析的推荐算法。它的基本…

php微信小程序java+Vue高校课程课后辅导在线教育系统nodejs+python

目 录 1绪论 1 1.1项目研究的背景 1 1.2开发意义 1 1.3项目研究现状及内容 5 1.4论文结构 5 2开发技术介绍 7 2.1 B/S架构 7 2.2 MySQL 介绍 7 2.3 MySQL环境配置 7 2.5微信小程序技术 8 3系统分析 9 3.1可行性分析 9 3.1.1技术可行性 9 3.1.2经济可行性 9 3.1.3操作可行性 10 …

MySQL的查询完结,vju树状题组完结,cf补题

目录 MySQL 查询 比较条件 判空 逻辑条件 模糊条件 where in 聚合查询 排序查询 vju 线段树OR树状数组 - Virtual Judge cf Problem - A - Codeforces Problem - A - Codeforces Problem - B - Codeforces 周总结 MySQL 查询 比较条件 SELECT *FROM student WH…

细思极恐,第三方跟踪器正在获取你的数据,如何防范?

细思极恐&#xff0c;第三方跟踪器正在获取你的数据&#xff0c;如何防范&#xff1f; 当下&#xff0c;许多网站都存在一些Web表单&#xff0c;比如登录、注册、评论等操作需要表单。我们都知道&#xff0c;我们在冲浪时在网站上键入的数据会被第三方跟踪器收集。但是&#x…

[C++]C++基础知识概述

目录 C基础知识概述&#xff1a;&#xff1a; 1.什么是C 2.C发展史 3.C关键字 4.命名空间 5.C的输入输出 6.缺省参数 7.函数重载 8.引用 9.内联函数 10.auto关键字(C11) 11.基于范围的for循环(C11) 12.指针空值—nullptr(C11) C基础知识概述&#xff1…

React中使用lodash防抖失效解决

React中使用lodash防抖失效解决 import {Input} from antd; import lodash from lodash; // lodash下的防抖函数 const debounce lodash.debounce; // 防抖打印&#xff0c;希望输入的时候&#xff0c;延迟0.5s后打印值 const getSuggestion debounce((val:string) > {co…

SpringCloud微服务技术栈.黑马跟学(九)

SpringCloud微服务技术栈.黑马跟学 九今日目标1.分布式事务问题1.1.本地事务1.2.分布式事务1.3.演示分布式事务问题2.理论基础2.1.CAP定理2.1.1.一致性2.1.2.可用性2.1.3.分区容错2.1.4.矛盾2.2.BASE理论2.3.解决分布式事务的思路3.初识Seata3.1.Seata的架构3.2.部署TC服务一、…

GPT-4老板:AI可能会杀死人类,已经出现我们无法解释的推理能力

来源: 量子位 微信号&#xff1a;QbitAI “AI确实可能杀死人类。” 这话并非危言耸听&#xff0c;而是OpenAI CEO奥特曼的最新观点。 而这番观点&#xff0c;是奥特曼在与MIT研究科学家Lex Fridman长达2小时的对话中透露。 不仅如此&#xff0c;奥特曼谈及了近期围绕ChatGPT…

《统计学习方法》学习笔记之第一章

统计学习方法的学习笔记&#xff1a;第一章 目录 第一节 统计学习的定义与分类 统计学习的概念 统计学习的分类 第二节 统计学习方法的基本分类 监督学习 无监督学习 强化学习 第三节 统计学习方法三要素 模型 策略 第四节 模型评估与模型选择 训练误差与测试误差 过…

Ubuntu设置清华源

本文为自己安装记录回顾用 下面的是ubuntu20.04Ubuntu 更换镜像源 Ubuntu默认的服务器是在国外&#xff0c;连接很慢。 更换成国内的镜像源&#xff0c;使用清华镜像源&#xff0c;连接就会快一点 下面介绍更换清华镜像源的方法 1.打开Ubuntu的控制台&#xff08;快捷键ctrlAlt…

Mysql事务(MVCC实现原理)、锁、sql优化

一.事务 数据库事务就是访问、操作各种数据的一个数据库操作序列, 是由事务开始到事务结束之间全部的执行过程组成的, 事务处理可以用来维护数据库的完整性, 保证成批的sql要么全部执行要么全部都不执行, 当然在mysql中只有使用了Innodb数据库引擎的数据库或表才有事务. 事…

2023值得我们关注的10种软件测试趋势

未来测试的趋势 随着软件在商业和日常生活中继续发挥关键作用&#xff0c;测试将不断发展以满足现代数字环境的需求。客户对软件得质量有着很高的要求并且测试时间应该更加快。因此&#xff0c;组织努力更快、更频繁地交付他们的软件&#xff0c;并且测试过程需要更多地集成到开…

C++继承相关总结

文章目录前言1.继承的相关概念1.继承概念2.继承的相关语法3.基类和派生类对象赋值转换(赋值兼容规则&#xff09;2.继承中的注意事项1.继承中的作用域2.派生类的默认成员函数1.构造函数与拷贝构造2.赋值重载与析构3.友元关系与静态成员变量3.多继承(菱形继承)1.虚拟继承2.虚拟继…

栈和队列OJ题合集(包含循环队列的两种实现)

目录 一:前言 二:有效的括号(括号匹配) 三:用队列实现栈 四:用栈实现队列 五:设计循环队列 一:前言 对栈和队列的基本性质和实现有问题的可以看上一期 链接&#xff1a;http://t.csdn.cn/YQMBA​​​​ 注意:本文用数据的大小来表示入栈入队的先后。 二:有效的括号(括号匹配…

fastp软件介绍

fastp软件介绍1、软件介绍2、重要参数解析2.1 全部参数2.2 使用示例2.3 重要参数详解&#xff08;1&#xff09;UMI去除&#xff08;2&#xff09;质量过滤&#xff08;3&#xff09;长度过滤&#xff08;4&#xff09;低复杂度过滤&#xff08;5&#xff09;adapter过滤&#…

《文章复现》考虑用户舒适度的冷热电多能互补综合能源系统优化调度

说明书 免费&#xff1a;https://download.csdn.net/download/qq_50594161/87625438 MATLAB代码&#xff1a;考虑用户舒适度的冷热电多能互补综合能源系统优化调度 关键词&#xff1a;用户舒适度 综合能源 PMV 优化调度 参考文档&#xff1a;《冷热电气多能互补的微能源网鲁…

什么是RabbitMQ?有什么用如何使用?一文回答

RabbitMQ RabbitMQ channel&#xff1a;操作MQ的工具exchange&#xff1a;交换机&#xff0c;路由消息到队列中queue&#xff1a;队列&#xff0c;缓存消息virtual host&#xff1a;虚拟主机&#xff0c;对queue&#xff0c;exchange等资源的逻辑分组 MQ模型 基本消息队列工作…

Java 8 - Lambda 表达式

1. 函数式接口 当一个接口中只有一个非 default 修饰的方法&#xff0c;这个接口就是一个函数式接口用 FunctionalInterface 标注 1&#xff09;只有一个抽象方法 FunctionalInterface public interface MyInterface {void print(int x); } 2&#xff09;只有一个抽象方法和…

射频接收机概述

接收机架构 射频接收机架构是指电子设备中用于接收无线电信号的部分。它通常由前置放大器、中频放大器、混频器、局部振荡器和带通滤波器等组成。以下是一个基本的射频接收机架构&#xff1a; 前置放大器&#xff1a;前置放大器的作用是放大接收天线接收到的微弱无线电信号&am…