一、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架构

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

运维体系思路

自动化运维软件ansible相关推荐

  1. 自动化运维工具ansible(安装与模块介绍)

    自动化运维工具ansible(安装与模块介绍) 一.ansible运维工具概述 (一).ansible的特点 (二).ansible的原理 (三)ansible的优点 二.安装ansible 三.an ...

  2. 自动化运维工具ansible的安装管理以及模块介绍

    自动化运维工具ansible的安装管理以及模块介绍 目录 自动化运维工具ansible的安装管理以及模块介绍 一.ansible概述 1.几种常用运维工具比较 2.Ansible简介 3.Ansibl ...

  3. 自动化运维工具-Ansible实战指南

    Ansible实战 前言 一.Ansible简介 1.ansible是什么? 2.ansible特点 3.ansible架构 主要模块 工作流程 命令执行过程 二.Ansible 配置 1 安装ans ...

  4. 自动化运维工具----ansible

    自动化运维工具----ansible ansible是新出现的运维工具是基于Python研发的糅合了众多老牌运维工具的优点实现了批量操作系统配置.批量程序的部署.批量运行命令等功能. 主要模块以及功能 ...

  5. 自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客

    自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客 自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客 自动化运维工具Ansib ...

  6. 自动化运维工具Ansible实战---常用模块

    Ansible默认提供了很多模块来供我们使用.在Linux中,我们可以通过 ansible-doc -l 命令查看到当前Ansible支持哪些模块,通过 ansible-doc -s [模块名] 又可 ...

  7. 自动化运维工具-Ansible的Playbook的使用

    Playbook的使用 前言 一.Playbook是什么? 二.playbook使用场景 三.Playbook格式说明 四.Play book变量的使用 1 在主机列表定义变量 2 在playbook ...

  8. 自动化运维工具——Ansible(三)——分组管理

    自动化运维工具--Ansible(三)--分组管理 1. 通过ip地址分组 1.1 写法一 1.2 写法二 2. 通过主机名分组 2.1 写法一 2.2 写法二 3. 子组 1. 通过ip地址分组 1 ...

  9. 自动化运维工具——ansible安装及模块介绍

    ansbile 前言 一.主流自动化运维工具简介 1.1 Puppet 1.2 Saltstack 1.3 Ansible 二.Ansible 运维工具原理 三.Ansible安装 3.1 下载软件包 ...

最新文章

  1. OpenCV(总结篇)图像逐像素访问(三种操作:指针、迭代器、at()函数)
  2. SAP移动战略与HANA已为BI爆发做好准备
  3. 什么是HystrixDashbord/如何使用?
  4. XGBoost入门及实战
  5. java 百度网盘上传_使用pcs api往免费的百度网盘上传下载文件的方法
  6. kali系统apt设置代理
  7. 【无标题】写博客的第一天
  8. springboot 修改页面不重启
  9. azure机器学习_使用Azure ML Studio的Azure机器学习简介
  10. 能让IT部门告别996的办公神器,你一定要知道
  11. ADO获取表的所有字段名
  12. 恢复svn服务器误删的文件,SVN删除文件及其恢复问题详解
  13. ArcGIS实验四 不同坡度植被覆盖率分析
  14. 张小龙分享微信——从产品经理的角度解读微信
  15. linux 逗号分隔,linux-如何用逗号分割列表而不是sp
  16. ASP.NET清除Cookies
  17. 正则表达式实现提取IP地址字符串
  18. 重装系统(无法开机时候操作方法)
  19. MSP430系列单片机的DMA使用全面认识
  20. 简单实用 | 用Gitbook做笔记 / 写书过程全记录

热门文章

  1. Elasticsearch的原理详解和使用
  2. SpringBoot:整合Redis(概述,数据类型,持久化,RedisTemplate)
  3. RxHttp 一条链发送请求之强大的数据解析功能(二)
  4. 宙斯盾 DDoS 防护系统“降本增效”的云原生实践
  5. 跨平台应用开发进阶(三十九)uni-app实现内容分享
  6. adb命令行 查看手机 ip
  7. Centos7配置代理Squid
  8. layuiAdmin框架iframe版本个人总结
  9. 《微波原理与技术》学习笔记5波导理论-微波传输线
  10. 制作自己的Winpe镜像(2):向初始化PE中添加驱动、软件、及第三方工具