Skip to content

Commit

Permalink
deployment: add prepartion step for libcurl-gnutls.so on CentOS
Browse files Browse the repository at this point in the history
  • Loading branch information
aspirer authored and ilixiaocui committed Sep 6, 2021
1 parent c6fbb04 commit 8f0da82
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
7 changes: 7 additions & 0 deletions docs/cn/deploy.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ ansible是一款自动化运维工具,curve-ansible 是基于 ansible playbook
## 特别说明
- 一些外部依赖是通过源码的方式安装的,安装的过程中从github下载包可能会超时,这时可以选择重试或手动安装,jemalloc手动安装的话要保证configure的prefix与server.ini和client.ini的lib_install_prefix一致
- 如果机器上开启了SElinux可能会报Aborting, target uses selinux but python bindings (libselinux-python) aren't installed,可以尝试安装libselinux-python,或者强行关闭selinux
- CentOS 7/8操作系统下安装curve,会在启动curve进程的时候报找不到libcurl-gnutls.so.4库的问题,原因是CentOS上没有打libcurl-gnutls这个包,规避方案可参考环境准备的第5步
- deploy_curve.yml用于部署一个全新的集群,集群成功搭建后不能重复跑,因为会**扰乱集群**。可以选择**启动**集群或者**清理**集群后重新部署,详细用法见[curve-ansible README](../../curve-ansible/README.md)
- 部署的过程中,在chunkserver成功启动之前都可以任意重试,**chunkserver启动成功后重试**要额外注意,要带上--skip-tags format,因为这一步会把启动成功的chunkserver的数据给清理掉,从而扰乱集群。
- 需要用到curve-nbd功能的话,对内核有两方面的要求:一是要支持nbd模块,可以modprobe nbd查看nbd模块是否存在。二是nbd设备的block size要能够被设置为4KB。经验证,通过[DVD1.iso](http://mirrors.163.com/centos/8/isos/x86_64/CentOS-8.2.2004-x86_64-dvd1.iso)完整安装的CentOs8,内核版本是4.18.0-193.el8.x86_64,满足这个条件,可供参考。
Expand Down Expand Up @@ -66,6 +67,12 @@ ansible是一款自动化运维工具,curve-ansible 是基于 ansible playbook
$ pip install --upgrade setuptools
```
4. 确保源里面有以下几个包:net-tools, openssl>=1.1.1, perf, perl-podlators, make
5. 使用规避方案修复libcurl-gnutls包不存在问题(CentOS发行版未打这个包):
```bash
# check /usr/lib64/libcurl-gnutls.so.4 is exist or not, if NOT, make a soft link for workaround:
$ ln -s /usr/lib64/libcurl.so.4.3.0 /usr/lib64/libcurl-gnutls.so.4 # the version of libcurl.so may be different in your env, but should be 4.x.y
```
##### Debian9环境准备具体步骤
1. root用户登录机器,创建curve用户
Expand Down
7 changes: 7 additions & 0 deletions docs/en/deploy_en.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ Ansible is an automated operation and maintenance tool, and curve-ansible is a c

- If SElinux is turned on on the machine, it may report 'Aborting, target uses selinux but python bindings (libselinux-python) aren't installed', you can try to install 'libselinux-python', or close selinux forcibly.

- When deploying curve on CentOS 7/8, you may get a libcurl-gnutls.so.4 not found error, this is because the libcurl-gnutls package is not available on CentOS, you can make a workaround by following the preparation step 5.

- 'deploy_curve.yml' is used to deploy a brand new cluster. After the cluster is successfully set up, it cannot be run repeatedly because it will **disrupt the cluster**. You can choose to **start** the cluster or **clear** the cluster to redeploy. For detailed usage, see [curve-ansible README](../../curve-ansible/README.md).

- During the deployment process, you can always try again before the chunkserver is successfully started. **if you still want retry after the chunkserver is successfully started**, please use the '--skip-tags format', since it will clean up the data of the chunkserver that has been successfully started, thereby disrupting the cluster.
Expand Down Expand Up @@ -74,6 +76,11 @@ The smallest CURVE cluster topology:
$ pip install --upgrade setuptools
```
4. Make sure there are the following packages in the source:net-tools, openssl>=1.1.1, perf, perl-podlators, make
5. Make a workaround for libcurl-gnutls package:
```bash
# check /usr/lib64/libcurl-gnutls.so.4 is exist or not, if NOT, make a soft link for workaround:
$ ln -s /usr/lib64/libcurl.so.4.3.0 /usr/lib64/libcurl-gnutls.so.4 # the version of libcurl.so may be different in your env, but should be 4.x.y
```
##### steps for Debian9 environment preparation
1. Log in to the machine as the root user and create a curve user::
Expand Down

0 comments on commit 8f0da82

Please sign in to comment.