使用Containerd建立bind应用的几个难点

一、镜像建立脚本需要修改

https://hub.docker.com/r/internetsystemsconsortium/bind9 是启动方法
https://github.com/isc-projects/bind9-docker 里是build方法,点击Dockerfile查看第一行是否有绿勾,如下图

绿勾代表编译通过,如果是红叉,那就等等作者,如果不能等的话,也有其它方法,我们以后再说。

看Dockerfile内容如下

FROM ubuntu:jammy
MAINTAINER BIND 9 Developers <bind9-dev@isc.org>
ENV DEBIAN_FRONTEND noninteractive
ENV LC_ALL C.UTF-8
ARG DEB_VERSION=1:9.18.12-1+ubuntu22.04.1+isc+1

# Install add-apt-repository command
RUN apt-get -qqqy update
RUN apt-get -qqqy dist-upgrade
RUN apt-get -qqqy install –no-install-recommends apt-utils software-properties-common dctrl-tools gpg-agent

# Add the BIND 9 APT Repository
RUN add-apt-repository -y ppa:isc/bind

# Install BIND 9
RUN apt-get -qqqy update
RUN apt-get -qqqy dist-upgrade
RUN apt-get -qqqy install bind9=$DEB_VERSION bind9utils=$DEB_VERSION

# Now remove the pkexec that got pulled as dependency to software-properties-common
RUN apt-get –purge -y autoremove policykit-1
RUN mkdir -p /etc/bind && chown root:bind /etc/bind/ && chmod 755 /etc/bind
RUN mkdir -p /var/cache/bind && chown bind:bind /var/cache/bind && chmod 755 /var/cache/bind
RUN mkdir -p /var/lib/bind && chown bind:bind /var/lib/bind && chmod 755 /var/lib/bind
RUN mkdir -p /var/log/bind && chown bind:bind /var/log/bind && chmod 755 /var/log/bind
RUN mkdir -p /run/named && chown bind:bind /run/named && chmod 755 /run/named
VOLUME ["/etc/bind", "/var/cache/bind", "/var/lib/bind", "/var/log"]
EXPOSE 53/udp 53/tcp 953/tcp

CMD ["/usr/sbin/named", "-g", "-c", "/etc/bind/named.conf", "-u", "bind"]

我们需要将最后一行的-g参数改为-f参数,如果服务器用-f参数启动,则named.run会被stderr所代替,severity 按照服务器当前Debug级别记录日志,如果是-g则启动调试模式,输出到显示器上,所以正常工作环境下,不适用-g参数,使用nerdctl重新编译。

nerdctl build -t bind:new -f .

二、目录权限

大家参考,目录内权限递归。需要注意的是配置文件及日志文件均不会自动建立,需要从容器中拷贝或新建。

三、网络

本次使用的机器包含了V4和V6地址,所以没有使用端口映射的方式启动,使用了–network host 模式,直接使用宿主机的网络地址。

在龙蜥8.6上安装Confluence7.19.1

为什么用龙蜥?

最近的CentOS8结束生命周期闹得沸沸扬扬,经过对目前现有国产操作系统总结归纳,龙蜥可做到CentOS8一键升级到龙蜥,且应用稳定性可以保障。但你要说他是挂皮的CentOS,也不尽然,我比较看重它重构CentOS后新增加的一些功能,龙蜥8.6是双内核,RHCK(RHEL Compatible Kernel)和ANCK(OpenAnolis Cloud Kernel),其中ANCK内核有阿里团队重点打造,且经过了阿里各种重大市场活动的检验,最主要的是Cgroup功能,可以防止有BUG的应用不断蚕食系统资源,导致系统崩溃的情况发生。

安装Confluence数据库需关注的重点

安装MySQL或MariaDB数据库不是本篇重点,但这里面务必需要按照Confluence官方文档来设置,这样才能减少踩坑的几率。

具体参照如下文档
https://confluence.atlassian.com/doc/database-setup-for-mysql-128747.html

BIN包安装Confluence7.19.1

说几个重点需要关注的地方
1、采用atlassian-agent方式,把启动写入setenv.sh最为稳妥
2、如果不是一次安装成功的,一定要注意,每次安装BIN包都会新建立一个confluence账户,比如第一次建立一个confluence,第二次就是confluence1,第三次就是confluence2,以此类推,然后我这次碰到的一个诡异的问题就是使用startup.sh启动一切正常,使用start-confluence.sh启动就会报权限错误,根据观察使用startup.sh启动使用root权限,使用start-confluence.sh启动使用的是最后一次安装成功的confluence【1-*】用户权限,但是如果你想系统开机启动confluence,那使用的必然是start-confluence.sh文件,目前可以通过修改user.sh中的启动用户来解决这个问题,但这不是官方解决方式,所以这个东西务必还是一次安装好。
3、新系统不要升级安装,建议新安装一套,然后使用旧系统的备份数据还原即可。

结尾放张图,上线测试中。。。

从Confluence 7.9.0 以下版本升级到 7.11.0 的方法

最近一边做测试,一边把步骤写在了QQ群里,今天有空总结一下:

首先,从confluence 7.9.0 以下版本无法直接升级到 7.11.0,这是因为7.11.0 引进了一个新的RMI端口 8000 (当然因为是跨版本升级,是否7.10版本就引进了,这里不做描述,因为也没有测试过)

其次,从升级程序测试来看,对跨版本升级也不友好,感觉没有经过严谨测试,就把程序放上来了(疫情以后的这几版程序都有这个问题)

所以我们还是新安装一个环境,然后将老环境下的数据迁移到新环境即可。

安装过程如下,使用虚拟机会比较友好

1、虚拟出一台和线上系统一模一样的confluence 7.9.0,IP不同,可访问即可。这样老业务也不用停止。先删除老的7.9.0,再安装新的7.11.0


chmod +x /opt/atlassian/confluence/uninstall
/opt/atlassian/confluence/uninstall
chmod +x atlassian-confluence-7.11.0-x64.bin.bin
./atlassian-confluence-7.11.0-x64.bin

注意安装完成后系统提示是否启动,选择No

2、替换K文件和增加 mysql driver


cd /opt/atlassian/confluence/confluence/WEB-INF/lib
mv atlassian-extras-decoder-v2-3.4.1.jar atlassian-extras-decoder-v2-3.4.1.jar.bak

同时需要上传mysql-connector-java-8.0.22.jar驱动到/opt/atlassian/confluence/confluence/WEB-INF/lib目录下

3、启动新安装的confluence 7.11.0


/opt/atlassian/confluence/bin/startup.sh

4、访问 http://IP:8090 进行安装

这里会报错

解决需要在数据库里增加一个语句


mysql -p
&gt; set global log_bin_trust_function_creators = 1;

然后继续安装

去旧的confluence 7.9.0 里把数据备份出来

完成后进入找到授权码,证明K文件依旧正常有效(K文件仅限研究,拒绝商用)

关于7.11.0的插件

照例无法打开应用市场,可以把插件下载下来使用,用下面这个插件做测试

插件部分到此结束,继续 One file all done。

浪潮NF5270M3型号服务器安装CentOS8.3

由于CentOS8.3删除了一些RAID卡驱动,导致安装的时候找不到硬盘,下面就来详细讲解一下如何安装CentOS8.3

一、查找浪潮服务器的RAID卡信息

https://www.inspur.com/eportal/ui?pageId=2317460&type=0
可以通过序列号查找
NF5270M3的RAID卡型号是SAS2018

二、查找CentOS8.3 移除的硬件信息
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/considerations_in_adopting_rhel_8/hardware-enablement_considerations-in-adopting-rhel-8#removed-adapters_hardware-enablement

可以看到SAS2108驱动已经被移除

三、下载被移除的驱动(ISO格式)
https://elrepo.org/linux/dud/el8/x86_64/

其中文件最后的0,1,2,3代表的是CentOS8的版本号,比如我们安装CentOS8.3,那么就应该下载对应的dd-megaraid_sas-07.714.04.00-1.el8_3.elrepo.iso文件。

四、安装CentOS8.3
正常使用安装盘引导到安装引导界面,按“TAB”键进入编辑,在quiet 后面增加liunx dd,然后弹出系统安装盘,挂入驱动盘后回车,待出现以下提示:
to select, ‘r’-refresh, or ‘c’-continue:
按r,然后选择1,会出现需要安装的驱动文件,然后再选择1确定,这时选择的驱动文件前面会显示[x]表示被选中,提示
to toggle selection, or ‘c’-continue: (输入c,回车)
驱动安装完成后,提示
to select, ‘r’-refresh, or ‘c’-continue:
这个时候需要弹出驱动盘,然后挂载系统安装盘,按c,就会进入安装程序,就可以正常安装CentOS8.3了。

Mount出错,提示you might need a /sbin/mount. helper program的解决方法

mount: XXX: bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount. helper program.的解决方法

其实是因为没安装nfs-utils导致的

因为我们安装的 CentOS8.2 使用的是国外的软件源,所以需要先换国内的软件源,这里选择相对稳定的阿里源


rm -rf CentOS-Base.repo CentOS-Extras.repo CentOS-AppStream.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
yum makecache

更换源站后继续安装nfs-utils


dnf install nfs-utils

然后再重新执行mount操作即可。