Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >elasticsearch安装ik中文分词器

elasticsearch安装ik中文分词器

作者头像
py3study
发布于 2021-04-25 07:48:01
发布于 2021-04-25 07:48:01
1.2K00
代码可运行
举报
文章被收录于专栏:python3python3
运行总次数:0
代码可运行

一、概述

elasticsearch官方默认的分词插件,对中文分词效果不理想。

中文的分词器现在大家比较推荐的就是 IK分词器,当然也有些其它的比如 smartCN、HanLP。

这里只讲如何使用IK做为中文分词。

二、安装elasticsearch

环境说明

操作系统:centos 7.6

docker版本:19.03.12

ip地址:192.168.31.165

安装

这里安装7.10.1版本

下载镜像

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker pull elasticsearch:7.5.1

修改系统参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi /etc/sysctl.conf

调整参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vm.max_map_count=262144

刷新参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sysctl -p

注意,系统参数一定要修改,否则参数过低,会造成elasticsearch启动失败。

配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir -p /data/elk7/elasticsearch/{data,logs,config,plugins}
vi /data/elk7/elasticsearch/config/elasticsearch.yml

内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cluster.name: "docker-cluster"
network.host: 0.0.0.0

启动elasticsearch

以单例模式启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run -d --name=elasticsearch \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" elasticsearch:7.10.1

等待30秒左右,查看docker日志,是否有错误日志

访问elasticsearch页面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://192.168.31.165:9200/

效果如下:

拷贝数据到持久化目录,并重新启动elasticsearch

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker cp elasticsearch:/usr/share/elasticsearch/data /data/elk7/elasticsearch/
docker cp elasticsearch:/usr/share/elasticsearch/logs /data/elk7/elasticsearch/
chmod 777 -R /data/elk7/elasticsearch/

docker rm -f elasticsearch
docker run -d --name=elasticsearch \
  --restart=always \
  -p 9200:9200 -p 9300:9300 \
  -e "discovery.type=single-node" \
  -v /data/elk7/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
  -v /data/elk7/elasticsearch/data:/usr/share/elasticsearch/data \
  -v /data/elk7/elasticsearch/logs:/usr/share/elasticsearch/logs \
  elasticsearch:7.10.1

再次刷新页面,效果同上。

三、安装ik中文分词器

打开github地址:https://github.com/medcl/elasticsearch-analysis-ik

打开releases页面,下载7.10.1版本

注意:这个版本,必须和elasticsearch对应。

下载完成后,将文件elasticsearch-analysis-ik-7.10.1.zip上传到/opt目录

解压到指定目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir /data/elk7/elasticsearch/plugins/elasticsearch-analysis-ik
unzip /opt/elasticsearch-analysis-ik-7.10.1.zip -d /data/elk7/elasticsearch/plugins/elasticsearch-analysis-ik

设置文件权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chmod 777 -R /data/elk7/elasticsearch/

重新启动elasticsearch

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker rm -f elasticsearch
docker run -d --name=elasticsearch \
  --restart=always \
  -p 9200:9200 -p 9300:9300 \
  -e "discovery.type=single-node" \
  -v /data/elk7/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
  -v /data/elk7/elasticsearch/data:/usr/share/elasticsearch/data \
  -v /data/elk7/elasticsearch/logs:/usr/share/elasticsearch/logs \
  -v /data/elk7/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
  elasticsearch:7.10.1

注意:这里是新挂载了plugins目录,用来存放插件的。

查看插件接口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://192.168.31.165:9200/_cat/plugins

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
e30bb0e85e63 analysis-ik 7.10.1

说明插件安装成功了。

四、ik分词器的使用

简单示例

请求url:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://192.168.31.165:9200/_analyze

首先我们通过Postman发送GET请求查询分词效果

先指定Headers,Content-Type=application/json

再指定请求参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "text":"农业银行"
}

效果如下:

得到如下结果,可以发现es的默认分词器无法识别中文中农业银行这样的词汇,而是简单的将每个字拆完分为一个词,这显然不符合我们的使用要求。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "tokens": [
        {
            "token": "农",
            "start_offset": 0,
            "end_offset": 1,
            "type": "<IDEOGRAPHIC>",
            "position": 0
        },
        {
            "token": "业",
            "start_offset": 1,
            "end_offset": 2,
            "type": "<IDEOGRAPHIC>",
            "position": 1
        },
        {
            "token": "银",
            "start_offset": 2,
            "end_offset": 3,
            "type": "<IDEOGRAPHIC>",
            "position": 2
        },
        {
            "token": "行",
            "start_offset": 3,
            "end_offset": 4,
            "type": "<IDEOGRAPHIC>",
            "position": 3
        }
    ]
}

上面已经安装ik中文分词器,接下来使用它。

我们这次加入新的参数"analyzer":"ik_max_word"

  • k_max_word:会将文本做最细粒度的拆分,例如「中华人民共和国国歌」会被拆分为「中华人民共和国、中华人民、中华、华人、人民共和国、人民、人、民、共和国、共和、和、国国、国歌」,会穷尽各种可能的组合
  • ik_smart:会将文本做最粗粒度的拆分,例如「中华人民共和国国歌」会被拆分为「中华人民共和国、国歌」

修改postman请求参数为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "analyzer":"ik_max_word",
    "text":"农业银行"
}

得到如下结果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "tokens": [
        {
            "token": "农业银行",
            "start_offset": 0,
            "end_offset": 4,
            "type": "CN_WORD",
            "position": 0
        },
        {
            "token": "农业",
            "start_offset": 0,
            "end_offset": 2,
            "type": "CN_WORD",
            "position": 1
        },
        {
            "token": "银行",
            "start_offset": 2,
            "end_offset": 4,
            "type": "CN_WORD",
            "position": 2
        }
    ]
}

百度搜索中每天都会收录新的词汇,es中也可以进行扩展词汇。

我们首先查询弗雷尔卓德字段

修改postman请求参数为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "analyzer":"ik_max_word",
    "text":"弗雷尔卓德"
}

仅仅可以得到每个字的分词结果,我们需要做的就是使分词器识别到弗雷尔卓德也是一个词语。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "tokens": [
        {
            "token": "弗",
            "start_offset": 0,
            "end_offset": 1,
            "type": "CN_CHAR",
            "position": 0
        },
        {
            "token": "雷",
            "start_offset": 1,
            "end_offset": 2,
            "type": "CN_CHAR",
            "position": 1
        },
        {
            "token": "尔",
            "start_offset": 2,
            "end_offset": 3,
            "type": "CN_CHAR",
            "position": 2
        },
        {
            "token": "卓",
            "start_offset": 3,
            "end_offset": 4,
            "type": "CN_CHAR",
            "position": 3
        },
        {
            "token": "德",
            "start_offset": 4,
            "end_offset": 5,
            "type": "CN_CHAR",
            "position": 4
        }
    ]
}

首先进入es根目录中的plugins文件夹下的ik文件夹,进入config目录,创建custom.dic文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /data/elk7/elasticsearch/plugins/elasticsearch-analysis-ik/config
vi custom.dic

写入以下内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
弗雷尔卓德
弗雷尔
卓
德

打开IKAnalyzer.cfg.xml文件,将新建的custom.dic配置其中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
    <comment>IK Analyzer 扩展配置</comment>
    <!--用户可以在这里配置自己的扩展字典 -->
    <entry key="ext_dict">custom.dic</entry>
     <!--用户可以在这里配置自己的扩展停止词字典-->
    <entry key="ext_stopwords"></entry>
    <!--用户可以在这里配置远程扩展字典 -->
    <!-- <entry key="remote_ext_dict">words_location</entry> -->
    <!--用户可以在这里配置远程扩展停止词字典-->
    <!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

注意:仅仅修改<entry key="ext_dict"></entry> 这一行内容即可

重启es

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker restart elasticsearch

再次查询发现es的分词器可以识别到弗雷尔卓德词汇

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "tokens": [
        {
            "token": "弗雷尔卓德",
            "start_offset": 0,
            "end_offset": 5,
            "type": "CN_WORD",
            "position": 0
        },
        {
            "token": "弗雷尔",
            "start_offset": 0,
            "end_offset": 3,
            "type": "CN_WORD",
            "position": 1
        },
        {
            "token": "卓",
            "start_offset": 3,
            "end_offset": 4,
            "type": "CN_WORD",
            "position": 2
        },
        {
            "token": "德",
            "start_offset": 4,
            "end_offset": 5,
            "type": "CN_WORD",
            "position": 3
        }
    ]
}

官方示例

1. 创建索引

进入linux系统,手动执行。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -XPUT http://localhost:9200/index

 2.创建一个映射

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -XPOST http://localhost:9200/index/_mapping -H 'Content-Type:application/json' -d'
{
        "properties": {
            "content": {
                "type": "text",
                "analyzer": "ik_max_word",
                "search_analyzer": "ik_smart"
            }
        }

}'

3. 索引加入一些文档

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -XPOST http://localhost:9200/index/_create/1 -H 'Content-Type:application/json' -d'
{"content":"美国留给伊拉克的是个烂摊子吗"}
'
curl -XPOST http://localhost:9200/index/_create/2 -H 'Content-Type:application/json' -d'
{"content":"公安部:各地校车将享最高路权"}
'
curl -XPOST http://localhost:9200/index/_create/3 -H 'Content-Type:application/json' -d'
{"content":"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"}
'
curl -XPOST http://localhost:9200/index/_create/4 -H 'Content-Type:application/json' -d'
{"content":"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"}
'

4. 带高亮显示的查询

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -XPOST http://localhost:9200/index/_search  -H 'Content-Type:application/json' -d'
{
    "query" : { "match" : { "content" : "中国" }},
    "highlight" : {
        "pre_tags" : ["<tag1>", "<tag2>"],
        "post_tags" : ["</tag1>", "</tag2>"],
        "fields" : {
            "content" : {}
        }
    }
}
'

注意:

highlight表示高亮显示。

pre_tags,post_tags表示,匹配关键字后,增加标记。

fields 表示

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "took": 174,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 3,
            "relation": "eq"
        },
        "max_score": 1.2257079,
        "hits": [
            {
                "_index": "index",
                "_type": "_doc",
                "_id": "3",
                "_score": 1.2257079,
                "_source": {
                    "content": "中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"
                },
                "highlight": {
                    "content": [
                        "<tag1>中</tag1>韩渔警冲突调查:韩警平均每天扣1艘<tag1>中</tag1><tag1>国</tag1>渔船"
                    ]
                }
            },
            {
                "_index": "index",
                "_type": "_doc",
                "_id": "4",
                "_score": 0.9640833,
                "_source": {
                    "content": "中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"
                },
                "highlight": {
                    "content": [
                        "<tag1>中</tag1><tag1>国</tag1>驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"
                    ]
                }
            },
            {
                "_index": "index",
                "_type": "_doc",
                "_id": "1",
                "_score": 0.3864615,
                "_source": {
                    "content": "美国留给伊拉克的是个烂摊子吗"
                },
                "highlight": {
                    "content": [
                        "美<tag1>国</tag1>留给伊拉克的是个烂摊子吗"
                    ]
                }
            }
        ]
    }
}

字典配置

上午已经提到了如何自定义字典文件,比如:custom.dic。这里不做重复介绍,请查看上文操作。

热更新 IK 分词使用方法

目前该插件支持热更新 IK 分词,通过上文在 IK 配置文件中提到的如下配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--用户可以在这里配置远程扩展字典 -->
<entry key="remote_ext_dict">location</entry>
<!--用户可以在这里配置远程扩展停止词字典-->
<entry key="remote_ext_stopwords">location</entry>

其中 location 是指一个 url,比如 http://yoursite.com/getCustomDict,该请求只需满足以下两点即可完成分词热更新。

  1. 该 http 请求需要返回两个头部(header),一个是 Last-Modified,一个是 ETag,这两者都是字符串类型,只要有一个发生变化,该插件就会去抓取新的分词进而更新词库。
  2. 该 http 请求返回的内容格式是一行一个分词,换行符用 \n 即可。

满足上面两点要求就可以实现热更新分词了,不需要重启 ES 实例。

可以将需自动更新的热词放在一个 UTF-8 编码的 .txt 文件里,放在 nginx 或其他简易 http server 下,当 .txt 文件修改时,http server 会在客户端请求该文件时自动返回相应的 Last-Modified 和 ETag。可以另外做一个工具来从业务系统提取相关词汇,并更新这个 .txt 文件。

注意:远程扩展字典,需要自己写api,根据实际业务情况而定。我目前还未找到公开的远程扩展字典api,支持任何用户访问的那种。

本文参考链接:

https://github.com/medcl/elasticsearch-analysis-ik

https://www.cnblogs.com/haixiang/p/11810799.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/04/22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用Puppet模块创建LAMP堆栈
在Puppet中,模块是服务器配置的构建块。模块安装和配置包,创建目录,并生成用户在模块中包含的任何其他服务器更改。Puppet模块旨在执行特定任务的所有部分,例如下载Apache包,配置所有文件,更改MPM数据以及设置虚拟主机。反过来,模块被分解为扩展名为.pp的类文件,这些文件旨在将模块简化为各种任务,并提高模块的可读性。
用户1196457
2018/09/03
2K0
关于 Nginx创建虚拟主机与地址重写
        server_name  www.linuxidc.com;                                  【设置域名】
星哥玩云
2022/07/13
1.1K0
puppet使用详解「建议收藏」
随着企业服务器规模的不断扩大,再想通过手动去管理服务器已经变得越来越浪费时间,而且人总是容易出错的。所有就需要一款合适的自动化运维工具来管理服务器,自动配置服务器的工作。 puppet是一种Linux、Unix、windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。 puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互。每个客户端周期的(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。每个puppet客户端每半小时(可以设置)连接一次服务器端, 下载最新的配置文件,并且严格按照配置文件来配置客户端. 配置完成以后,puppet客户端可以反馈给服务器端一个消息. 如果出错,也会给服务器端反馈一个消息.
全栈程序员站长
2022/09/06
2.8K0
puppet使用详解「建议收藏」
puppet部署与应用
如果只管理几台服务器,命令多点也没什么,但是如果管理着成百上千台服务器,可以想象一下,工作量将是多么的庞大。所以作为一名运维工程师,就需要寻找一款能够降低工作量的工具。那么今天就给大家介绍一批工具,这批工具是“可编程”的,只需要为这批工具写上几行代码,它便会自动完成所有的工作,这批工具就是运维自动化puppet(为什么说是一批工具,因为软件不止一个)。Puppet可以针对多台服务器进行统一的操作,例如:软件分发,统一执行脚本,在服务器上写好脚本分发给客户机,客户机就会自动执行,减少了人力及误操作风险
L宝宝聊IT
2018/06/20
1.3K0
puppet简介、安装配置、语法、命令与实例
puppet主要使用于自动化运维方面,对于拥有众多服务器需要管理的管理员来说,puppet是个不错的选择,使其管理更加轻松,容易。其设计的是c/s建构,可以一个master和多个client。通过master可管理配置客户端的文件、用户、cron任务、软件包、系统服务等。客户端默认半小时向master请求一次以使其与master配置同步,从而使管理员在master上设置配置就可以实现对于众多客户端机器的管理。
菲宇
2019/06/13
3.6K0
puppet简介、安装配置、语法、命令与实例
手动编写的几个简单的puppet管理配置
puppet在自动化配置管理方面有很强大的优势,这里就不做过多介绍了,下面记录下几个简单的puppet管理配置: 一、首先在服务端和客户端安装puppet和facter 1)服务端 安装Puppet Labs # rpm -ivh http://yum.puppetlabs.com/el/6.5/products/x86_64/puppetlabs-release-6-12.noarch.rpm 安装Puppet和facter # yum install puppet puppet-server fact
洗尽了浮华
2018/01/22
1.5K0
Puppet常识梳理
Puppet简单介绍 1)puppet是一种Linux/Unix平台下的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。 2)Puppet是开源的基于Ruby的系统配置管理工具,puppet是一个C/S结构。所有的puppet客户端同一个服务器端的puppet通讯,每个puppet客户端每半小时(可以设置)连接一次服务器端,下载最新的配置文
洗尽了浮华
2018/01/22
2K0
Puppet常识梳理
Puppet管理Nginx主机
Puppet管理Nginx主机,将nginx主机加入到puppet中,实现自动安装、配置、和启动服务
星哥玩云
2022/07/03
8890
Puppet自动化运维排错案例
[root@client src]# puppetd --test --server server.linuxidc.com
星哥玩云
2022/07/03
2330
Puppet之class模块案例
先来看下module的路径及最基本的目录结构: [root@master modules]# puppet master --configprint modulepath /etc/puppet/modules:/usr/share/puppet/modules [root@master modules]# pwd /etc/puppet/modules [root@master modules]# tree -l . └── ssh     ├── files    #文件目录     │  └── sshd_config  #要下载的文件     ├── manifests          │  └── init.pp     └── templates      #模版文件 4 directories, 2 files
星哥玩云
2022/06/28
3530
Puppet之class模块案例
【笔记梳理】---puppet学习笔记
一、Puppet基础原理: Puppet是一款使用GPLV2X协议授权的开源管理配置工具,用ruby语言开发,既可以通过客户端—服务器的方式运行,也可以独立运行。puppet可以为系统管理员提供方便,快捷的系统自动化管理。 二、puppet工作流程 1. 客户端 puppet-client 向 puppet-master 发起认证请求,或使用带签名的证书。 2. puppet-master 告诉 puppet-client 是合法的。 3. puppet-client 调用 facter, Facter 探
小小科
2018/05/03
1.3K0
如何在Ubuntu 14.04上设置Masterless Puppet环境
在现代云计算领域,配置管理是至关重要的一步。配置管理工具允许您可靠地将配置部署到服务器。Puppet是这个领域中比较成熟的配置管理工具之一。
何处惹尘埃
2018/10/17
8550
puppet安装
server  xuesong1     10.152.14.85 client  xuesong      10.152.14.106 系统centos5.8 两台配置都配置 /etc/hosts 10.152.14.85    xuesong1 10.152.14.106   xuesong wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm rpm -Uvh epel-release-5-
程序员同行者
2018/06/22
5990
Puppet基于Master/Agent模式实现LNMP平台部署
前言 随着IT行业的迅猛发展,传统的运维方式靠大量人力比较吃力,运维人员面对日益增长的服务器和运维工作,不得不把很多重复的、繁琐的工作利用自动化处理。前期我们介绍了运维自动化工具ansible的简单应用,本期带来的是运维自动化神器puppet基于Master/Agent模式实现LNMP平台部署。 Puppet 简介 Puppet是基于ruby语言开发的一种Linux、Unix、Windows平台的集中配置管理系统,可以C/S模式或独立运行,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、
小小科
2018/05/04
1.1K0
Puppet基于Master/Agent模式实现LNMP平台部署
puppet
puppet三板斧:资源、类、模板 与saltstack的对比。 介绍、基础、实战、进阶 1、puppet是一个开源的跨平台的集中化的配置管理工具,发布于2005,目前最新版本为6.3。puppet是基于ruby语言的。在2012年的时候,puppet与Openstack整合。 2、目前puppet已拥有300+客户,包括twitter、oracle、Google、RedHat,国内有新浪、阿里巴巴、腾讯、百度、小米、豆瓣等。 3、puppet管理一台主机的整个生命周期,包括初始化安装、升级、维护、服务迁移。在puppet世界中,一台主机的每个生命周期内的每个动作都被抽象成一个资源。我们需要维护一台主机上的每个资源。 4、puppet的组织结构:
用户5760343
2022/05/14
8310
puppet
Puppet的搭建和应用从入门到精通
作为一名系统管理员,维护服务器正常运行是最基本的职责,在管理几台到几十台服务器时,大部分管理员喜欢自己写小工具来维护,但随着服务器的数量曾多,任务量也逐渐增多,这时就需要简洁的、强大的框架来完成系统管理的任务,为了实现这一目的,我们引入了一些工具,这些工具是可编程的,系统管理员只需要为这个工具写上几行代码,它便会自动的完成所有的工作,这批工具就是运维自动化puppet,它可以针对多台服务器进行统一操作,如部署统一的软件、进行统一上线维护等,而且能快速完成上线部署,减少人力及人力误操作风险。
星哥玩云
2022/07/25
1K0
Puppet的搭建和应用从入门到精通
安装和配置Puppet
Puppet是一个配置自动化平台,可简化各种系统管理员任务。Puppet使用客户端/服务器模型,其中托管服务器(称为Puppet代理)与Puppet主服务器通信并下拉配置文件。
evildickman
2018/09/04
4.3K0
安装和配置Puppet
如何用Puppet和Augeas管理Linux配置
虽然Puppet是一个真正独特的有用工具,但在有些情况下你可以使用一点不同的方法来用它。比如,你要修改几个服务器上已有的配置文件,而且它们彼此稍有不同。Puppet实验室的人也意识到了这一点,他们在 Puppet 中集成了一个叫做Augeas的伟大的工具,它是专为这种使用情况而设计的。
星哥玩云
2022/07/03
1.1K0
如何用Puppet和Augeas管理Linux配置
自动化运维工具——puppet详解(一)
puppet是一个IT基础设施自动化管理工具,它能够帮助系统管理员管理基础设施的整个生命周期: 供应(provisioning)、配置(configuration)、联动(orchestration)及报告(reporting)。   基于puppet ,可实现自动化重复任务、快速部署关键性应用以及在本地或云端完成主动管理变更和快速扩展架构规模等。   遵循GPL 协议(2.7.0-), 基于ruby语言开发。   2.7.0 以后使用(Apache 2.0 license)   对于系统管理员是抽象的,只依赖于ruby与facter。   能管理多达40 多种资源,例如:file、user、group、host、package、service、cron、exec、yum repo等。
顾翔
2020/02/19
4.6K0
自动化运维工具——puppet详解(一)
10分钟带你光速入门运维工具之-Puppet
一、简介 当服务器数量达到一定的规模时,仅依靠人为完成批量部署服务器个资源的配置,运维工作将变得繁琐且容易出错,为了解决这一问题,我们应该怎么办呢?我们可以引入一批工具,这批工具可编写相应的manifests代码,运行它便可以自动完成所有的工作,目前比较流行的运维工具主要有:puppet,ansible, slackstack等,在这我们主要以puppet来展开话题。 在一些大型互联网企业中,运维自动化管理着几百甚至上千台服务器,它可以针对多台服务器进行统一操作,例如部署统一软件、进行统一上线维护等,而且
小小科
2018/05/04
1K0
10分钟带你光速入门运维工具之-Puppet
相关推荐
使用Puppet模块创建LAMP堆栈
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验