今天看到消息说Oracle的永久免费套餐内又加了新内容:免费ARM小鸡,4核心CPU,24G内存。
我开了一台后发现系统有点蛋疼,只能装他们家的OracleLinux8,而且又是ARM架构,可玩性稍微差了点。
我首先想到的是重装系统,但是后来觉得就算把系统装成别的了也都差不多,毕竟是ARM。。
所以最后我的打算是当个下载机用,因为这个免费套餐里面还有200GB的免费存储卷可以用,而且月流量有10TB。
说是准备工作,不如说是踩坑后的处理办法,下面这些都是我事后配置完发现的问题。所以建议在开始部署前就配置了。
首先是这个系统默认启用了SELinux,这玩意会影响Nginx的反向代理,解决方法有两种,你可以直接关闭SELinux或者执行下面的命令:
setsebool -P httpd_can_network_connect 1
再就是防火墙,这个系统默认启用了Firewall,后续我们安装的Docker也是要用到这个防火墙的,不能直接关闭,关闭后会导致容器的网络出问题。
但是后面我装的Aria2又起了一堆端口,写规则太麻烦,我也懒得配置,有一个简单的办法,直接把默认区域改成信任,即允许全部流量:
firewall-cmd --set-default-zone=trusted firewall-cmd --reload
查看当前的默认区域,回显trusted就OK了:
firewall-cmd --get-default-zone
Oracle还有一个自带的防火墙,这里默认只放行了22端口,你可以在“计算”-“实例”-“实例详细信息”-“虚拟云网络”看到如下图所示的内容:
点进去找到“安全列表”:
然后在这里添加一个入站规则,为方便起见直接按照下图配置为允许全部流量即可:
先装个Docker上去,用Docker跑Qbittorrent。这里先记录一下Docker的安装方法。
我一般装Docker都直接用官方的一键安装jio本,但很不幸的是官方的jio本不支持这个OracleLinux系统。。
好在这个OracleLinux是完全兼容CentOS的,所以可以直接使用CentOS的存储库来安装。
先更新系统,安装需要用到的包:
sudo dnf -y update sudo dnf -y install dnf-plugins-core
添加docker的存储库:
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
然后直接安装即可:
sudo dnf -y install docker-ce docker-ce-cli containerd.io
启动以及设置开机启动:
sudo systemctl enable --now docker
oracle的小鸡默认情况下都是用opc这个普通用户登录的,把这个用户加到docker组里面之后就可以用这个普通用户来使用docker命令行了:
sudo usermod -aG docker opc
注:如果dockercli还是提示权限问题,重启系统即可生效。
我一般还会安装一个compose来编排容器,但是同样的以往在x86平台下直接下载二进制文件来安装compose的方法并不适用于arm平台。
这里可以借助pip来安装,首先装需要用到的包:
sudo dnf -y install python3-devel sudo dnf group install "Development Tools"
然后就可以通过pip来安装了:
pip3 install docker-compose
安装完成后root用户不能正常使用,做一个软链接即可:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
新建一个compose:
mkdir qbittorrent && cd qbittorrent && nano docker-compose.yml
写入如下配置:
version: '3.5' services: qbittorrent: image: ghcr.io/linuxserver/qbittorrent container_name: qbittorrent environment: - PUID=1000 - PGID=1000 - TZ=Asia/Shanghai - WEBUI_PORT=8080 volumes: - ./config:/config - ./downloads:/downloads ports: - 6881:6881 - 6881:6881/udp - 8080:8080 restart: unless-stopped
up起来即可:
docker-compose up -d
安装Nginx/MariaDB/Redis/Supervisor:
sudo dnf install -y nginx mariadb-server redis supervisor
启动以及设置开机自启:
sudo systemctl enable --now nginx mariadb redis supervisord
安装Aria2,装Aria2的目的是我打算后续配合Cloudreve实现离线下载。
OracleLinux8的存储库里面是没有Aria2的,但是可以添加EPEL的存储库来安装:
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo dnf -y install aria2
初始化数据库:
sudo mysql_secure_installation
创建一个名为cloudreve的数据库和用户:
mysql -u root -p CREATE DATABASE cloudreve CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; GRANT ALL PRIVILEGES ON cloudreve.* TO cloudreve@localhost IDENTIFIED BY 'password'; FLUSH PRIVILEGES; quit
下载Cloudreve的ARM版本:
mkdir cloudreve && cd cloudreve wget https://github.com/cloudreve/Cloudreve/releases/download/3.3.1/cloudreve_3.3.1_linux_arm64.tar.gz tar -xzvf cloudreve_3.3.1_linux_arm64.tar.gz
新建一个配置文件:
nano conf.ini
写入如下配置:
[System] Mode = master Listen = 127.0.0.1:5000 Debug = false [Database] Type = mysql Port = 3306 User = cloudreve Password = password Host = 127.0.0.1 Name = cloudreve TablePrefix = cd_ [CORS] AllowOrigins = * AllowMethods = OPTIONS,GET,POST AllowHeaders = * AllowCredentials = false [Redis] Server = 127.0.0.1:6379 Password = DB = 0
在前台手动运行一次,获得你的管理员账号和密码,之后按Ctrl+C退出运行:
./cloudreve
新建Supervisor进程守护配置文件:
sudo nano /etc/supervisord.d/cloudreve.ini
写入如下配置:
[program:cloudreve] directory=/home/opc/cloudreve command=/home/opc/cloudreve/cloudreve user=opc autostart=true autorestart=true stderr_logfile=/var/log/cloudreve.err stdout_logfile=/var/log/cloudreve.log environment=CODENATION_ENV=prod
更新配置并启动Cloudreve:
sudo supervisorctl update
接下来配置Aria2,首先创建需要用到的目录:
mkdir -p /home/opc/cloudreve/aria2/{config,temp}
新建一个Aria2配置文件:
nano /home/opc/cloudreve/aria2/config/aria2.conf
写入如下配置:
enable-rpc=true rpc-listen-port=6800 rpc-secret=password save-session-interval=1 save-session=/home/opc/cloudreve/aria2/config/aria2.session auto-save-interval=30 max-concurrent-downloads=100 max-connection-per-server=16 split=64 enable-dht=true dht-file-path=/home/opc/cloudreve/aria2/config/dht.dat enable-peer-exchange=true bt-enable-lpd=true bt-max-peers=0 seed-time=0 bt-tracker=udp://tracker.opentrackr.org:1337/announce,udp://tracker.moeking.me:6969/announce,http://p4p.arenabg.com:1337/announce
[重要]我实测Oracle的机器Aria2必须要添加bt-tracker,没有tracker的话,磁力链接根本不能下载,你可以在这里找到每日更新的热门tracker:
https://github.com/ngosang/trackerslist
现在新建一个Supervisor进程守护配置文件,用于守护aria2进程:
sudo nano /etc/supervisord.d/aria2.ini
写入如下配置:
[program:aria2] command=/usr/bin/aria2c --conf-path=/home/opc/cloudreve/aria2/config/aria2.conf user=opc autostart=true autorestart=true stderr_logfile=/var/log/aria2.err stdout_logfile=/var/log/aria2.log environment=CODENATION_ENV=prod
更新配置并启动Aria2:
sudo supervisorctl update
现在来配置nginx反向代理,在配置反向代理之前,我们需要安装Certbot,用于签发SSL证书。
[重要]这里有一个大坑,不要使用snapd来安装Certbot,通过snapd安装的Certbot会因为架构问题无法使用,虽然官网上明确说明是支持ARM的,但不知为何Oracle的机器还是不行。
可行的办法是直接通过包管理器装,需要注意的是Certbot这个包只存在于EPEL存储库,你需要先添加EPEL存储库才能安装(本文之前为了安装Aria2已经添加过了)
所以我们这里直接安装即可:
sudo dnf -y install certbot python3-certbot-nginx
然后新建nginx站点配置文件:
sudo nano /etc/nginx/conf.d/cloudreve.conf
写入如下配置:
server { listen 80; server_name cloudreve.233.fi; client_max_body_size 0; error_log /var/log/nginx/cloudreve.error.log; access_log /var/log/nginx/cloudreve.access.log; location / { proxy_pass http://127.0.0.1:5000; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; } }
签发SSL证书:
sudo certbot --nginx
至此所有配置就全部完成了。不得不说换了个架构后坑还是有点多的。。
不过这样折腾了一下现在已经完美的使用起来了,正好我的contabo今天到期,可以把contabo的大盘鸡扔了。又省钱了!还是很香的。。。
最新评论
5211314
能不能教我 一点不会