自动化运维软件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服务器的自动挂载![](/assets/blank.gif)
... 三个点结束 千万注意---只能用在第一行,否则会报错
开启剧本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架构
{}这种写法是因为版本太老,所以可以用之前的写法
运维体系思路![](/assets/blank.gif)
自动化运维软件ansible相关推荐
- 自动化运维工具ansible(安装与模块介绍)
自动化运维工具ansible(安装与模块介绍) 一.ansible运维工具概述 (一).ansible的特点 (二).ansible的原理 (三)ansible的优点 二.安装ansible 三.an ...
- 自动化运维工具ansible的安装管理以及模块介绍
自动化运维工具ansible的安装管理以及模块介绍 目录 自动化运维工具ansible的安装管理以及模块介绍 一.ansible概述 1.几种常用运维工具比较 2.Ansible简介 3.Ansibl ...
- 自动化运维工具-Ansible实战指南
Ansible实战 前言 一.Ansible简介 1.ansible是什么? 2.ansible特点 3.ansible架构 主要模块 工作流程 命令执行过程 二.Ansible 配置 1 安装ans ...
- 自动化运维工具----ansible
自动化运维工具----ansible ansible是新出现的运维工具是基于Python研发的糅合了众多老牌运维工具的优点实现了批量操作系统配置.批量程序的部署.批量运行命令等功能. 主要模块以及功能 ...
- 自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客
自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客 自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客 自动化运维工具Ansib ...
- 自动化运维工具Ansible实战---常用模块
Ansible默认提供了很多模块来供我们使用.在Linux中,我们可以通过 ansible-doc -l 命令查看到当前Ansible支持哪些模块,通过 ansible-doc -s [模块名] 又可 ...
- 自动化运维工具-Ansible的Playbook的使用
Playbook的使用 前言 一.Playbook是什么? 二.playbook使用场景 三.Playbook格式说明 四.Play book变量的使用 1 在主机列表定义变量 2 在playbook ...
- 自动化运维工具——Ansible(三)——分组管理
自动化运维工具--Ansible(三)--分组管理 1. 通过ip地址分组 1.1 写法一 1.2 写法二 2. 通过主机名分组 2.1 写法一 2.2 写法二 3. 子组 1. 通过ip地址分组 1 ...
- 自动化运维工具——ansible安装及模块介绍
ansbile 前言 一.主流自动化运维工具简介 1.1 Puppet 1.2 Saltstack 1.3 Ansible 二.Ansible 运维工具原理 三.Ansible安装 3.1 下载软件包 ...
最新文章
- OpenCV(总结篇)图像逐像素访问(三种操作:指针、迭代器、at()函数)
- SAP移动战略与HANA已为BI爆发做好准备
- 什么是HystrixDashbord/如何使用?
- XGBoost入门及实战
- java 百度网盘上传_使用pcs api往免费的百度网盘上传下载文件的方法
- kali系统apt设置代理
- 【无标题】写博客的第一天
- springboot 修改页面不重启
- azure机器学习_使用Azure ML Studio的Azure机器学习简介
- 能让IT部门告别996的办公神器,你一定要知道
- ADO获取表的所有字段名
- 恢复svn服务器误删的文件,SVN删除文件及其恢复问题详解
- ArcGIS实验四 不同坡度植被覆盖率分析
- 张小龙分享微信——从产品经理的角度解读微信
- linux 逗号分隔,linux-如何用逗号分割列表而不是sp
- ASP.NET清除Cookies
- 正则表达式实现提取IP地址字符串
- 重装系统(无法开机时候操作方法)
- MSP430系列单片机的DMA使用全面认识
- 简单实用 | 用Gitbook做笔记 / 写书过程全记录
热门文章
- Elasticsearch的原理详解和使用
- SpringBoot:整合Redis(概述,数据类型,持久化,RedisTemplate)
- RxHttp 一条链发送请求之强大的数据解析功能(二)
- 宙斯盾 DDoS 防护系统“降本增效”的云原生实践
- 跨平台应用开发进阶(三十九)uni-app实现内容分享
- adb命令行 查看手机 ip
- Centos7配置代理Squid
- layuiAdmin框架iframe版本个人总结
- 《微波原理与技术》学习笔记5波导理论-微波传输线
- 制作自己的Winpe镜像(2):向初始化PE中添加驱动、软件、及第三方工具