首页 k8s

ubuntu 裸机安装docker和n8n自动化工作流工具

pyweeX 发布于 06-25
k8s
pyweeX

ubuntu 安装 n8n 自动化工作流工具,本文包含了虚拟机和 docker 的安装等。

http://mirrors.aliyun.com/ubuntu-releases/ 我使用了阿里云镜像较旧的版本,16.04.7

安装完成后,进行基础配置

基础配置

开户超级管理员权限(看自己需要)

  1. # sudo 然后输入相关密码
  2. sudo passwd root

先关闭防火墙

  1. sudo ufw disable

利用虚拟机搭建时,选择桥接

  1. sudo nano /etc/network/interfaces

静态IP设置示例:

  1. auto eth0
  2. iface eth0 inet static
  3. address 192.168.1.100
  4. netmask 255.255.255.0
  5. gateway 192.168.1.1
  6. dns-nameservers 8.8.8.8

完成后输入 CTRL+O 保存,再输入回车,然后重启网络

  1. sudo service network-manager restart

本地开发的时候,安装 openssh 来支持远程连接。

  1. # 一定要先更新安装包源
  2. sudo apt update
  3. # 安装openssh
  4. sudo apt install openssh-server

这时候如果报错 please insert the disc labeled 说明该系统本身未安装 SSH 服务,所以会导致终端无法连接的情况。但是在安装 SSH 服务的过程中,遇到 Media change: please insert the disc labeled 的问题,如下图:
Ubuntu apt install 报错处理

所以解决办法,找到 Ubuntu 的安装配置源 /etc/apt/sources.list,就是将该源进行注释掉即可,如下图:
Ubuntu apt install 报错处理
注释掉之后再次执行上面的安装命令即可。

参考资料 https://blog.csdn.net/Hello_World_QWP/article/details/82790961

完成安装之后,可以切换到宿主机的 cmd 命令窗口来操作了,这样看起来方便些,接下来进行 docker 安装。


ubuntu docker 安装

也可参考这里 https://blog.csdn.net/urnotlanxi/article/details/128005616

移除旧版本

  1. apt-get remove docker docker-engine docker.io containerd runc

更新软件列表

  1. sudo apt-get update

允许 apt 命令可以使用 HTTP 访问 Docker repository

  1. sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

添加 docker 官方 GPG key

  1. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

添加阿里源然后更新

  1. add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
  2. sudo apt-get update

安装 docker-ce

  1. sudo apt-get install docker-ce docker-ce-cli containerd.io

要进一步使用 github.com 相关的资源可以先关闭防火墙,然后对apt进行升级,速度明显会快很多,不知为何

  1. sudo ufw disable
  2. sudo apt update
  3. sudo apt upgrade

安装 docker-compose

  1. curl -SL https://github.com/docker/compose/releases/download/v2.9.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

docker-compose 在国内极其难装,如果安装不了可直接使用命令 apt install docker-compose 就可以了,我是用了这种方式安装。


安装N8N

下载 n8n,我这里直接使用 http

  1. git clone https://github.com/n8n-io/n8n.git

下载过程可能比较慢,此过程中可以同时安装其他需要的东西。

由于我的工作比较特殊,需要对 n8n 进行二次开发,所以我计划基于源码创建本地镜像,本地源码编译需要有 node.js 相关依赖,因为它就是基于这个语言开发的,所以这里安装一下。

  1. apt install npm node.js

n8n 提供了非常多的数据库组合形式创建,默认使用sqlLite数据库。在它的 docker->compose 目录中,有根据 postgresql 和 MariaDB 部署的编排文件。

由于我要自己打包,所以使用 docker->compose->images->n8n-custom 目录下它的 Dockerfile 进行编译。

使用 注意版本号的变量要对上,否则可能编译失败。

  1. docker build --build-arg N8N_VERSION=0.234.0 -t n8n_lc:v0.1 .

编译完成后,修改 docker->compose->withPostgres 目录下的 docker-compose.yaml。我经过自己需要修改完成之后的样子是下面这样,与原来的文件有很大出入,请根据自己需要修改。

注意 n8n 的首次登录密码可以在 docker-compose 里面设置。

  1. version: '2'
  2. services:
  3. postgres:
  4. image: postgres:11
  5. ports:
  6. - 5432:5432
  7. restart: always
  8. environment:
  9. - POSTGRES_USER=postgres
  10. - POSTGRES_PASSWORD=linux
  11. - POSTGRES_DB=postgres
  12. volumes:
  13. - /data/postgresql:/var/lib/postgresql/data
  14. - ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh
  15. n8n:
  16. image: n8n_lc:v0.1
  17. restart: always
  18. environment:
  19. - DB_TYPE=postgresdb
  20. - DB_POSTGRESDB_HOST=postgres
  21. - DB_POSTGRESDB_PORT=5432
  22. - DB_POSTGRESDB_DATABASE=postgres
  23. - DB_POSTGRESDB_USER=postgres
  24. - DB_POSTGRESDB_PASSWORD=linux
  25. - N8N_BASIC_AUTH_ACTIVE=true
  26. - N8N_BASIC_AUTH_USER=root
  27. - N8N_BASIC_AUTH_PASSWORD=linux
  28. ports:
  29. - 5678:5678
  30. links:
  31. - postgres
  32. volumes:
  33. - /data/n8n:/home/node/.n8n
  34. depends_on:
  35. - postgres
  36. networks:
  37. default:
  38. external:
  39. name: "n8n_bridge"

此处创建了一个自定义网络 sbridge,让两个容器关联起来。

  1. docker network create n8n_bridge

至此,n8n 部署完成。运行起来后它会监听 5678 端口,进入安装流程,一切都是自动的。

声明: 因编程语言版本更新较快,当前文章所涉及的语法或某些特性相关的信息并不一定完全适用于您当前所使用的版本,请仔细甄别。文章内容仅作为学习和参考,若有错误,欢迎指正。

讨论 支持 Markdown 语法 点击演示
回复
评论预览框

开发者

开发者·注册登录
  • 获取验证码
  • 取消