云服务器内容精选

  • PostgreSQL是什么? PostgreSQL是一个开源对象关系型数据库管理系统,并侧重于可扩展性和标准的符合性。PostgreSQL面向企业复杂SQL处理的OLTP在线事务处理场景,支持NoSQL数据类型(JSON/XML/hstore),支持GIS地理信息处理,在可靠性、数据完整性方面有良好声誉,适用于互联网网站、位置应用系统、复杂数据对象处理等应用场景。 本文指导您使用华为云弹性云服务器搭建PostgreSQL。
  • 主节点配置 依次执行以下命令,安装PostgreSQL。 # yum update -y # yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm # yum install postgresql11-server # yum install postgresql11 # /usr/pgsql-11/bin/postgresql-11-setup initdb # systemctl enable postgresql-11 # systemctl start postgresql-11 执行以下命令,切换到postgres用户(安装好生成默认的用户)。 # su - postgres 执行以下命令,进入数据库 。 # psql 执行以下命令,创建账号并授权。 create role 账户名 login replication encrypted password '密码'; 上述命令中密码必须用单引号。 以创建的账号名为dbar,密码为xxxxx为例,命令如下: create role dbar login replication encrypted password 'xxxxx'; 执行以下命令,修改/var/lib/pgsql/11/data/pg_hba.conf配置文件,添加如下内容。 # vim /var/lib/pgsql/11/data/pg_hba.conf host all all 192.168.1.0/24 md5 #允许VPC网段中md5密码认证连接 host replication dbar 备库实际IP/24 md5 #允许用户从replication数据库进行数据同步 执行以下命令,修改/var/lib/pgsql/11/data/postgresql.conf。 # vim postgresql.conf wal_level = hot_standby #热备模式 max_wal_senders= 6 #可以设置最多几个流复制链接 wal_sender_timeout = 60s #流复制主机发送数据的超时时间 max_connections = 512 #从库的 max_connections要大于主库 archive_command=’cp %p /var/lib/pgsql/11/data/archivelog/%f’#归档 wal_keep_segments=10240 archive_mode = on #允许归档 listen_addresses= xxx.xx.xx.xx #实际的本地ip地址 执行以下命令,重启服务。 # systemctl restart postgresql-11
  • 从节点配置 依次执行以下命令,完成从节点安装。 # yum update -y # yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm # yum install postgresql11-server # yum install postgresql11 执行以下命令,复制master配置相关文件。 # pg_basebackup -h 主节点ip -U dbar -D /var/lib/pgsql/11/data -X stream -P # cp /usr/pgsql-11/share/recovery.conf.sample /var/lib/pgsql/11/data/recovery.conf 执行以下命令,修改recovery.conf文件。 # vim recovery.conf standby_mode = on # 声明此节点为从库 primary_conninfo = 'host=主节点IP port=5432 user=dbar password=xxxxx(此处密码不能加单引号) trigger_file = '/var/lib/pgsql/11/data/trigger.kenyon' #主从切换时后的触发文件 recovery_target_timeline = 'latest' restore_command = 'cp /var/lib/pgsql/11/data/archivelog/%f %p' archive_cleanup_command = 'pg_archivecleanup /var/lib/pgsql/11/data/archivelog %r' #清除过期归档 执行以下命令,修改postgresql.conf文件。 # chown -R postgres.postgres /var/lib/pgsql/11/data 修改/var/lib/pgsql/11/data/postgresql.conf。 listen_addresses= xxx.xx.xx.xx #实际的本地ip地址 max_connections = 600 执行以下命令,启动服务,设置开机自启。 #systemctl enable postgresql-11 #systemctl start postgresql-11
  • 验证部署完成 执行以下命令,在主节点中可查看到sender进程。 # ps aux |grep sender 执行以下命令,从节点中可查看到receiver进程。 # ps aux | grep receiver 执行以下命令,主库中可查看到从库状态。 # su - postgres -bash-4.2# psql replication=# select * from pg_stat_replication; 在主库建一个库,验证备库是否可以同步。 在主库执行以下命令 postgres=# create database testdb; postgres=# \l 在备库执行以下命令查看。 postgres=# \l
  • 后续验证 单一任务执行 创建任务,选择自由项目,输入项目名称,单击“OK”。 在构建步骤,选择“执行shell”,填入echo hello world; exit,其他不设置,单击“保存”。 单击“立即构建”。 等待左下方构建任务执行完成,单击进入,选择控制台输出,看到执行成功并输出hello world。 多任务顺序执行 在插件管理界面,搜索并安装MultiJob插件。 插件安装后需要重启Jenkins方可生效,选择安装后重启选项。 重启Jenkins后,需要在已安装的插件界面,查看MultiJob插件是否生效。 创建多任务项目,选择MultiJob项目,输入项目名称,单击“OK”。 创建MultiJob项目前,需先创建三个单一任务子项目。 在构建步骤,选择MultiJob Phase。 增加如下3个子任务,并设置按顺序运行。 单击“保存”,任务创建完成。 单击“立即构建”,即可看到3个任务按顺序构建成功。
  • 操作步骤 安装JDK 考虑到和Jenkins版本的兼容性,选择安装OpenJDK 11(支持的Java版本)。 远程登录已购买的E CS 设备。 执行以下命令查看当前JDK版本。 java -version 如果存在JDK且当前版本低于11,则执行如下命令卸载原有的JDK。 rpm -qa | grep java | xargs rpm -e --nodeps 继续执行以下命令安装新版本JDK。 yum install -y java-11-openjdk 重启ECS服务器。 执行以下命令查看是否安装成功。 java -version 安装Jenkins 依次执行以下3条命令安装Jenkins。 sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key yum install -y jenkins --nogpgcheck 执行以下命令编辑Jenkins文件。 vim /etc/sysconfig/Jenkins #Port JENKINS_PORT="8080" #Modify the user $JENKINS_USER="root" #Modify directory permissions chown -R root:root /var/lib/jenkins chown -R root:root /var/cache/jenkins chown -R root:root /var/log/Jenkins 分别执行以下命令启动Jenkins并查看当前状态。 systemctl start jenkins systemctl status jenkins 激活Jenkins 在本地浏览器访问地址http:Jenkins所在主机绑定的EIP:8080,出现解锁界面。 登录弹性云服务器。 执行以下命令获取激活密码。 cat /var/lib/jenkins/secrets/initialAdminPassword 返回解锁界面输入激活密码,单击“继续”。 选择安装推荐的插件,等待安装完成后,选择使用admin账户继续下一步。 选择保存并完成,进入Jenkins主界面。
  • 操作步骤 安装相关依赖包和perl。 登录弹性云服务器。 为了更好的获取和更新系统和软件,建议您更新镜像源为华为云镜像源,详细操作,请参见如何使用自动化工具配置华为云镜像源(x86_64和ARM)?。 执行以下命令,安装相关依赖包。 yum -y install make gcc gcc-c++ m4 ncurses-devel openssl-devel unixODBC-devel 执行如下命令,安装perl。 yum install perl 安装erlang。 关于erlang的安装请参考Erlang官方资料。 添加erlang存储库到系统 wget https://packages.erlang-solutions.com/erlang-solutions-2.0-1.noarch.rpm rpm -Uvh erlang-solutions-2.0-1.noarch.rpm 或手动添加存储库条目 rpm --import https://packages.erlang-solutions.com/rpm/erlang_solutions.asc 在/etc/yum.repos.d/目录下新建一个文件rabbitmq-erlang.repo,然后将下面的粘贴进去 cd /etc/yum.repos.d/ vi rabbitmq-erlang.repo [erlang-solutions] name=CentOS $releasever - $basearch - Erlang Solutions baseurl=https://packages.erlang-solutions.com/rpm/centos/$releasever/$basearch gpgcheck=1 gpgkey=https://packages.erlang-solutions.com/rpm/erlang_solutions.asc enabled=1 按Esc键退出编辑模式,并输入:wq保存后退出。 执行以下命令安装erlang sudo yum install erlang 执行以下命令安装esl-erlang sudo yum install esl-erlang 执行如下命令,检查安装结果。 erl -version 回显类似如下信息,说明erlang安装成功。 [root@ecs-rabbitmq ~]# erl -version Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 11.1.7 安装RabbitMQ 执行如下命令,进入用户主目录。 cd 执行如下命令,下载RabbitMQ安装包。 打开Rabbit官网。 单击“Get Started”。 图1 Get Started 找到并单击“Download+Installation”。 图2 Download+Installation 根据云服务器的操作系统选择下载地址。例如本例中使用的是CentOS 7.x的下载地址。 图3 选择下载地址 在服务器上执行以下命令下载RabbitMQ安装包。 例如3.b.iv查找的下载地址是: https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.12/rabbitmq-server-3.8.12-1.el7.noarch.rpm 则执行的命令如下: wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.12/rabbitmq-server-3.8.12-1.el7.noarch.rpm 如果下载过程中提示“Unable to establish SSL connection.” 可以在wget命令后加--no-check-certificate,重复执行几次,即可下载。 例如: wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.12/rabbitmq-server-3.8.12-1.el7.noarch.rpm --no-check-certificate 执行以下命令安装RabbitMQ安装包。 yum install rabbitmq-server-3.8.12-1.el7.noarch.rpm 安装完毕,启动RabbMQ service rabbitmq-server start 查看RabbMQ状态。 service rabbitmq-server status 执行如下命令,启用RabbitMQ的web管理界面。 rabbitmq-plugins enable rabbitmq_management 回显类似如下信息: [root@ecs-rabbitmq ~]# rabbitmq-plugins enable rabbitmq_management Enabling plugins on node rabbit@ecs-rabbitmq: rabbitmq_management The following plugins have been configured: rabbitmq_management rabbitmq_management_agent rabbitmq_web_dispatch Applying plugin configuration to rabbit@ecs-2b36... The following plugins have been enabled: rabbitmq_management rabbitmq_management_agent rabbitmq_web_dispatch started 3 plugins. 执行如下命令,创建一个新用户。 rabbitmqctl add_user 用户名 密码 命令示例: rabbitmqctl add_user root 123456 执行如下命令,设置用户为管理员。 rabbitmqctl set_user_tags 用户名 administrator 命令示例: rabbitmqctl set_user_tags root administrator 执行如下命令,赋予用户所有权限。 rabbitmqctl set_permissions -p / 用户名 '.*' '.*' '.*' 命令示例: rabbitmqctl set_permissions -p / root '.*' '.*' '.*' 执行如下命令,在后台启动RabbitMQ。 rabbitmq-server -detached 使用浏览器访问 “http://弹性公网IP:15672”,显示如下页面,说明RabbitMQ安装成功。 输入步骤5创建的用户名和密码后单击“Login”,进入RabbitMQ管理界面。
  • 简介 本文介绍了如何在华为云上使用弹性云服务器的Linux实例部署RabbitMQ。RabbitMQ是采用Erlang语言实现AMQP(Advanced Message Queuing Protocol,高级消息队列协议)的消息中间件,它最初起源于金融系统,用于在分布式系统中存储转发消息。RabbitMQ凭借其高可靠、易扩展、高可用及丰富的功能特性成为目前非常热门的一款消息中间件。 您还可以选择Solution as Code一键式部署方式自动部署高可用的RabbitMQ集群,详细内容请参见快速部署高可用的RabbitMQ集群。
  • 实施步骤 安装宝塔面板。 登录弹性云服务器。 为了更好的获取和更新系统和软件,建议您更新镜像源为华为云镜像源,详细操作,请参见如何使用自动化工具配置华为云镜像源(x86_64和ARM)?。 执行以下命令,下载并安装宝塔面板。 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh 当出现以下提示信息时,输入“y”: ... Do you want to install Bt-Panel to the /www directory now?(y/n): y ... 安装完成后,回显如下类似信息: 请记录上图回显信息中红框部分的地址信息、“username”和“password”的参数值。 登录宝塔面板。 在浏览器地址栏中输入记录的地址,例如:https://1.92.xxx.xx:27832/0677640c。此示例中的端口号为27832,则安全组中需要添加的端口号为27832,否则会提示“无法访问此网站”。 显示如下界面: 图1 登录宝塔面板 输入记录的账户和密码。 勾选我已阅读并同意“《用户协议》”,单击“进入面板”。 绑定宝塔官网账号。 根据业务需要可以通过面板安装相关的套件并部署网站。 图2 宝塔面板
  • 约束与限制 弹性云服务器实例规格和操作系统: 内存要求最低512MB,推荐768MB以上,纯面板约占系统60MB内存。 100M以上可用硬盘空间(纯面板约占20M磁盘空间)。 宝塔Linux6.0版本是基于Centos7开发的,强烈建议使用CentOS 7.x 系统。 需要是全新的干净系统,没有安装过Apache、Nginx、php、MySQL。 弹性云服务器所在安全组添加了如表1所示的安全组规则,具体步骤参见为安全组添加安全组规则。 宝塔面板的端口通常为8888,但可能会因安装环境不同而改变,请您以3中对应的面板地址使用的端口和后续面板系统设置的端口为准)。 表1 安全组规则 方向 协议/应用 端口/范围 源地址 入方向 TCP 8888 0.0.0.0/0
  • 实施步骤 安装Extundelete。 登录弹性云服务器。 依次执行以下命令,安装 Extundelete 所需依赖及库。 yum install libcom_err e2fsprogs-devel yum install gcc gcc-c++ 在出现如下提示时,输入“y”。 Installed size: 25 M Is this OK [y/d/N]: y 执行以下命令,下载 Extundelete 源码。 wget https://github.com/curu/extundelete/archive/refs/tags/v1.0.tar.gz 执行以下命令,解压 v1.0.tar.gz 文件。 tar xf v1.0.tar.gz 依次执行以下命令,进行编译安装。 cd extundelete-1.0 ./configure make 执行以下命令,进入 src 目录,可查看已编译好的 Extundelete 文件。 cd ./src 执行以下命令,尝试恢复数据。 ./extundelete --restore-all /dev/对应盘 恢复后的文件位于同级目录的“RECOVERED_FILES”文件夹下。
  • 应用场景 Extundelete是一款文件恢复工具,支持恢复ext3及ext4文件系统类型的误删除文件。 误删除文件的恢复程度与如下因素有关: 文件删除后是否被写覆盖 元数据是否存留在journal 如果误删除的数据位于系统盘,且一直有业务进程或系统进程在写入文件,则可能无法通过此方法进行恢复。 为了提高数据安全性,建议您通过创建快照、创建私有镜像、创建云硬盘备份等方式定期进行数据备份。 本文以操作系统为CentOS 7.5的云服务器为例,介绍如何使用开源工具Extundelete快速恢复被误删除的数据。