如何在Ubuntu 16上安装Consul Server

时间:2020-03-05 15:25:08  来源:igfitidea点击:

在本文中,我们将向我们展示Ubuntu 16.04 LTS上Consul服务器的安装和配置。
领事服务发现和配置管理系统的解决方案,该解决方案完全分布式,高度可用,并且可扩展到跨多个数据中心的数千个节点和服务。
它有助于查找服务应用程序需求(例如数据库,电子邮件和队列),配置服务(例如为Web服务器启用维护模式)和运行状况检查服务。
它可以确保数据安全,并可以与最大的基础架构一起使用,采用现代实践并且对现有DevOps工具友好。
领事提供许多功能,以提供有关基础结构的一致且可用的信息。
当我们谈论服务发现时,Consul的客户端可以提供服务,例如api或者http,其他客户端可以使用Consul通过DNS或者MySQL查找给定服务的提供者,应用程序可以轻松地找到他们依赖的服务之上。

让我们看看如何在Ubuntu 16.04上安装Consul,Consul Web-UI和Consul模板。
但是我们可以通过一些修改在其他Linux发行版上实现相同的步骤。

准备工作

在本文中,我们使用安装了基本操作系统的Ubuntu 16.04的单个实例,但是我们可以根据建议使用在每个数据中心中运行的多个Consul服务器,以避免在服务器故障时丢失数据。
这些是繁重的工作,并存储有关服务的信息和键/值信息的组件。

使用root或者sudo特权用户登录到服务器,以安装一些基本软件包,这些软件包将在此过程中使用,然后再研究领事应用程序。

我们需要解压缩以提取可执行文件并更新本地系统程序包缓存,然后使用以下“ apt”命令安装程序包。

$sudo apt-get update
$sudo apt-get install unzip

我们还需要安装“ tmux”,该文件可用于多路复用多个虚拟控制台,从而允许用户访问单个终端窗口或者远程终端会话中的多个单独的终端会话。

$sudo apt-get install tmux

为了使用Consul Web ui软件包访问Consul,我们需要安装Web服务器,为此,我们将使用Nginx。
我们可以使用以下命令在Ubuntu服务器上安装Nginx。

$sudo apt-get install nginx

这些是基本的系统要求,现在让我们进入在Ubuntu上安装Consul的主题。

如何在Ubuntu 16上安装Consul

Consul软件包在Ubuntu的默认存储库中不可用,但是我们可以从可从consul网页下载的源软件包中安装它。

选择最新版本,复制其源位置,然后使用下面的“ wget”命令将其软件包安装在服务器上“ bin”目录中。

$cd /usr/local/bin
$sudo wget https://releases.hashicorp.com/consul/0.8.0/consul_0.8.0_linux_amd64.zip

下载后,解压缩该软件包并使用以下命令删除压缩的软件包。

$sudo unzip consul_0.8.0_linux_amd64.zip
$sudo rm -rf consul_0.8.0_linux_amd64.zip

现在,在领事的同一网页上,我们将找到其web-ui页面,可用于打开其Web控制台以管理该网页中的所有服务。
在用户的主目录中创建新目录后,让我们运行以下命令来下载Web-UI软件包。

$mkdir consul-ui
$cd consul-ui
$wget https://releases.hashicorp.com/consul/0.8.0/consul_0.8.0_web_ui.zip

下载后,解压缩软件包并删除压缩文件。

$unzip consul_0.8.0_web_ui.zip
$rm -rf consul_0.8.0_web_ui.zip

接下来,我们需要配置Consul服务器及其Web UI,以使其可以通过Web浏览器访问。

如何配置领事服务器

在以下新目录中创建一个新文件“ config.json”,并将以下配置参数放入其中。
目录,并将以下配置放入其中。
这里P.P.P.P是实例的私有IP

$cd ~
$mkdir -p consul-config/server

现在,使用以下命令使用命令行编辑器创建以下文件,以创建一个新文件。

~$vim consul-config/server/config.json
{
    "bootstrap": true,
    "server": true,
    "log_level": "DEBUG",
    "enable_syslog": true,
    "datacenter": "server1",
    "addresses" : {
      "http": "0.0.0.0"
    },
    "bind_addr": "XX.XX.XX.XX",
    "node_name": "XX.XX.XX.XX",
    "data_dir": "/home/k/consuldata",
    "ui_dir": "/home/k/consul-ui",
    "acl_datacenter": "server1",
    "acl_default_policy": "allow",
    "encrypt": "5KKufILrf186BGlilFDNig=="
}

在此配置文件中,第一个配置参数用于引导。
如果要设置由多个领事服务器组成的集群,请确保将此配置文件仅放置在一个领事服务器上,或者放置在所有这些服务器上,这为我们提供了更多引导选项。
配置文件存储在简单的JSON中,因此非常易于管理。

接下来,我们对领事使用的耳语协议实施了一些加密。
它具有使用共享机密系统内置的功能。
机密必须是16位base-64编码的字符串。
在终端中,我们可以使用consul命令生成具有必要长度和编码的密钥。

$consul keygen
5KKufILrf186BGlilFDNig==

确保使用我们自己的服务器IP或者FQDN更新bind_addr和node_name。
进行所需的更改后,使用':wq!'保存并关闭编辑器。
并进行下一步以配置Web服务器。

创建一个新的配置文件,放置在Nginx Web服务器的配置目录下,其中包含以下内容。

$sudo vim /etc/nginx/conf.d/consul.conf
server
{
  listen 80 ;
  server_name XX.XX.XX.XX;
  root /home/k/consul-ui;
      location/{
        proxy_pass http://127.0.0.1:8500;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
    }
}

保存并关闭配置文件,但请确保将“ XX”替换为域名或者服务器的IP地址。
之后,运行以下命令以重新启动Nginx服务。

$sudo systemctl restart nginx.service

重新启动Nginx服务后,我们将启动领事服务器。

如何启动和使用Consul服务器

配置Consul服务器后,现在我们将使用以下命令在'tmux'终端下启动其服务。

$tmux
$consul agent -config-dir ~/consul-config/server -ui-dir ~/consul-ui -bootstrap true -client=0.0.0.0

现在,我们将在tmux会话上运行领事流程,如下所示。

我们可以使用“ ctrl + b than d”在后台运行领事,从而使进程继续运行,并且tmux会话将被分离。

现在,按照服务器的IP或者FQDN和端口“ 8500”打开Web浏览器,以从Web浏览器管理领事服务器。

http://localhost:8500

就是这样,现在我们可以使用此界面来检查服务器的运行状况并获得服务和基础架构的概述。
当我们不想使用Web UI时,可以关闭SSH隧道或者使用ps命令和grep搜索进程的pid号,以搜索我们转发的端口号“ 8500”以终止进程。