zl程序教程

您现在的位置是:首页 >  其他

当前栏目

ansible基本概述和安装配置(一)

安装配置 基本 概述 Ansible
2023-09-14 09:15:44 时间

Ansible自动化管理(1)

1.ansbile基本概述

自动化运维工具:

shell脚本/Ansible(无客户端)/Saltstack(有客户端master-minio)

服务器部署流程

买云主机—环境部署—软件部署—配置部署—启动服务—测试—加入集群

1.1.ansible能做什么

ansible可以帮助我们完成一些批量任务,或者完成一些需要经常重复的工作

1.同时在100台服务器上安装nginx,并在安装后启动服务

2.将某个文件一次性拷贝到100台服务器上

3.每当有新服务器加入工作环境时,都要为服务器部署某个服务,要经常重复性的完成相同的工作

这些场景我们都可以使用ansible

1.2.ansible软件特点

1.ansible不需要单独安装客户端,ssh相当于ansible客户端

2.ansible不需要启动任何服务,仅需安装对应工具即可

3.ansible依赖大量的python模块实现批量管理

4.ansible配置文件/etc/ansible/ansible.cfg

1.3.ansible基础结构

1.连接插件(connector plugins)用于连接主机,用来连接被管理端

2.核心模块(core modules)连接主机实现操作,它依赖于具体的模块来做具体的事情

3.自定义模块(custom modules)根据自己的需求编写具体的模块

4.插件(plugins)完成模块功能的补充

5.剧本(playbooks)ansible的配置文件,将多个任务定义在剧本中,由ansible自动执行

6.主机清单(host inventory)定义ansible需要操作主机的范围

最重要的一点是ansible是模块化的,他所有的操作都依赖于模块

在这里插入图片描述

ansible工作架构:首先通过connection插件连接受控端所有主机,受控端有n个,可能针对于不同的服务器集群,因此我们就要对受控端进行合理的分配,将不同的集群做成不同的清单,保存在主机清单文件中,主机清单位于/etc/ansible/hosts文件中,在通过核心模块来传达指令,如果懂python也可以自定义模块,最后将各个模块组合在一起形成任务剧本,最终实现运维自动化

2.ansible安装配置

2.1.环境概述

主机名IP角色
ansible192.168.81.210ansible管理端
web192.168.81.220web服务器
nfs192.168.81.230nfs存储
backup192.168.81.240rsync备份服务器

2.2.安装ansible

[root@ansible ~]# yum -y install ansible
[root@ansible ~]# ansible --version
ansible 2.9.9

2.3.ansible借助公钥批量管理

利用非交互式实现批量分发公钥与批量管理服务器

1生成公钥文件
[root@ansible ~]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

2.将公钥推送至远程服务器
[root@ansible ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.81.220
[root@ansible ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.81.230
[root@ansible ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.81.230

3.能正常登录即可
[root@ansible ~]# ssh 192.168.81.220
Last login: Mon Jun  1 22:08:16 2020 from 192.168.81.1
[root@web ~]# exit
登出
Connection to 192.168.81.220 closed.
[root@ansible ~]# ssh 192.168.81.230
Last login: Mon Jun  1 22:10:56 2020 from 192.168.81.1
[root@nfs ~]# exit
登出
Connection to 192.168.81.230 closed.
[root@ansible ~]# ssh 192.168.81.240
Last login: Mon Jun  1 22:10:02 2020 from 192.168.81.1
[root@mysql ~]# exit
登出
Connection to 192.168.81.240 closed.