自动化运维工具ansible的简单使用

一、ansible的简介

ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:
(1)、连接插件connection plugins:负责和被监控端实现通信;
(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
(3)、各种模块核心模块、command模块、自定义模块;
(4)、借助于插件完成记录日志邮件等功能;
(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

ansible没有客户端,因此底层通信依赖于系统软件,Linux系统下基于OpenSSH通信,Windows系统下基于PowerShell,管理端必须是Linux

根据ansible使用过程中的不同角色,将其分为:使用者、ansible工具集和作用对象

Asible主推的卖点就是其无需任何Daemon维护进程即可实现相互间的通信,且通信方式是基于业内统一标准的安全可靠的SSH安全连接

ansible的通信机制:

(1)无客户端,只需安装SSH、Python即可
(2)基于OpenSSH通信,底层基于SSH协议(Windows基于PowerShell)
(3)支持密码和SSH认证,建议使用公私钥方式认证,因为密码认证方式的密码需要明文写配置文件,虽然配置文件可加密,但会增加Ansible的复杂度
(4)支持Windows,但仅支持客户端,服务端必须是Linux系统

二、ansible的使用

1.ansible的安装

红帽的企业8中是自带的,现在我们可以通过添加清华大学或阿里云的yum源来安装,本处添加的是清华大学的epel的yum源
在这里插入图片描述
在这里插入图片描述
在安装时可以指定ansible的版本,不指定默认就是最新版,本机使用的版本是
在这里插入图片描述

2.ansible的配置

因为ansible是通过ssh直接连接的,所以客户端不用安装什么软件,但是ansible连接时用的是普通身份,只在一些必要的时候才使用超户身份,所以先建立一个普通用户来执行ansible
在这里插入图片描述

自己编写一个配置文件和用户组的文件,也可以直接将/etc/ansible的模版复制过来
注意,ansible读取配置文件时,当前目录的会覆盖全局的配置文件

ansible.cfg		##是配置文件,表示默认读的主机组是当前目录下的inventory文件
inventory		##表示主机组里的用户有哪些,可以使用主机名,但是要做好本地解析

在这里插入图片描述

给另外两个节点server2和server3也创建一个普通用户,并赋予一个密码,不然一会ssh免密的时候会有问题
在server1进行ssh免密操作
su - devops			##注意是以普通用户连接,所以是在普通用户下免密
ssh-keygen
ssh-copy-id 

在这里插入图片描述
在这里插入图片描述

3.开始使用ansibile的一些简单命令
ansible all -m ping		##检测主机组文件中的所有主机的通信是否ok

在这里插入图片描述

以超户身份远程连接用户组,会显示失败,-u表示以什么用户身份执行此命令

在这里插入图片描述

接下来是以普通用户身份执行的,那么为什么也不行呢,因为-b表示连接后切换身份,只-b的话默认是切换超户身份

在这里插入图片描述

将本地的passwd复制到test组用户的/tmp/下,注意发送的这个目录普通用户应该有权限,因为我们使用的是普通用户身份,不然就会报错
-m 表示调用的模块,-a表示执行的命令
src表示的是本地文件的路径
dest表示的远程主机保存的路径

在这里插入图片描述

在远程主机上执行命令,不指定模块时默认就是comman模块

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

上面的操作都是在普通用户的身份下执行的,但是我们有些时候需要变成超户,比如下图,我们要把文件复制到一个普通用户没有权限的目录
这个时候就需要让普通用户在节点上有超户的权限
server2和server3做同样的修改即可
修改后再次尝试发现可行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

虽然我们在修改之后已经可以切换成超户身份了,但是每次还要加上-b,我们现在来让它默认自动切成超户
可以在/etc/ansible/ansible.cfg里找到这个模块然后复制过来
不加-b再次进行测试
sudo表示给他超户权限

在这里插入图片描述
在这里插入图片描述

组之间的交集和并集
!表示只在其中一个组才能进行操作,&表示两个组中都有的那个主机才能进行操作
可以再通过一个父级组来包括主机组

在这里插入图片描述
在这里插入图片描述

4.在指定主机上安装一个http服务

安装完之后可以直接查看是否安转成功
state表示安装
command模块与shell模块是相似的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ansible-doc yum			##可以查看yum的帮助文档,里面有很多例子以及对state的解释
absent表示写在

在这里插入图片描述

5.service模块
常用的服务状态控制命令:
ansible test -m service -a "name=httpd state=started"		##启动服务
ansible test -m service -a "name=httpd state=restarted"		##重启服务
ansible test -m service -a "name=httpd state=stopped"		##停止服务

在这里插入图片描述

6.user模块
ansible all -m user -a "name=yy password=<加密密码>"		
##设定一个用户和密码,虽然不会报错,但是这个密码是明文的,需要加密
absible all -m user -a "name=yy state=absent remove=yes"

在这里插入图片描述
在这里插入图片描述
手动加密:
在这里插入图片描述
在这里插入图片描述

7.mysql_user模块

首先需要安装关于数据库的python服务,因为ansible是通过ansible来控制服务的,然后再安装mariadb来测试
在这里插入图片描述
在这里插入图片描述
启动服务,创建一个用户
在这里插入图片描述
在这里插入图片描述
在主机端登陆进行测试,可以查询到建立的用户直接是已经加密的:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值