node 版本升级_Node-RED: 自动化事件触发工具的安装与介绍

Node-RED 介绍

  • Node-RED 是一种基于流程的编程工具
  • 由 IBM 的新兴技术服务团队原创开发
  • Node-RED 是一种事件触发工具,和 StackStorm 类似, 可以归类为上层的自动化工具,可以用来触发与之相对应的下层自动化工具,比如 ansible,来更加优化的完成自动化任务。

Node-RED 环境

我们首先需要明白 Node-RED 是基于Node.js来运行的。我们可以使用 Web 浏览器来访问到流程编辑器。我们可以使用拖拽和连线的方式来创建应用,也就是将所需的节点从面板拖拽到工作区中,然后用连接这些节点到一起。通过一键部署方式可以自动将已经创建好的应用部署和运行。

Node-RED 安装 之前 - 在 CentOS 中安装Node.js

添加 node.js yum repository

首先我们需要将 node.js 的 yum repository 添加到我们的系统中,它来源于nodejs的官方网站。

当前 LTS 版本是版本 14。

Index of /download/release/latest-v14.x/​nodejs.org

401eabe95ef490a18c449598527a1849.png

如果您想安装版本 8,只需在下面的命令中更改setup_14 到 setup_8 x。

[alick@devnet ~]# curl -sL https://rpm.nodesource.com/setup_14.x | sudo -E bash -

其他组件如下:

## You may also need development tools to build native addons:
[alick@devnet ~]# sudo yum install -y gcc-c++ make## To install the Yarn package manager, run:
[alick@devnet ~]# curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
[alick@devnet ~]# sudo yum install yarn

安装 node.js 和 NPM

查看将要安装的版本

[alick@devnet ~]# sudo yum list available nodejs
Loaded plugins: fastestmirror, langpacks
Repository epel is listed more than once in the configuration
Repository epel-debuginfo is listed more than once in the configuration
Repository epel-source is listed more than once in the configuration
Loading mirror speeds from cached hostfile
Available Packages
nodejs.x86_64                                                                             2:14.5.0-1nodesource   

然后安装 node.js 包和 NPM 包,运行以下命令执行此操作。

## Run `sudo yum install -y nodejs` to install Node.js 14.x and npm.
[alick@devnet ~]# sudo yum install -y nodejs

如果你装错了版本或者你要从旧版本升级,你可以使用如下的命令

[alick@devnet ~]# rm -f /etc/yum.repos.d/nodesource-el*
[alick@devnet ~]# curl -sL https://rpm.nodesource.com/setup_14.x | bash -
[alick@devnet ~]# sudo yum install -y nodejs

查看 node.js 和 npm 版本

使用如下命令来查看 node 和 npm 的版本

[alick@devnet ~]# node -v
v14.5.0[alick@devnet ~]# npm -v
6.14.5

使用简单的 javascript 代码来测试安装环境

我们创建一个文件 devnet.js

其中 192.168.100.100 你可以改为你 centos 的 ip 地址,12345 可以改为你需要访问的端口。

[alick@devnet ~]# cat devnet.js 
var http = require('http');
http.createServer(function (req, res) {res.writeHead(200, {'Content-Type': 'text/plain'});res.end('Welcome to DevNet SG');
}).listen(12345, "192.168.100.100");
console.log('Server running at http://192.168.100.100:12345/');

然后使用下面的代码来运行

[alick@devnet ~]# node --inspect devnet.js
Debugger listening on ws://127.0.0.1:9229/b7c74321-a226-4bcb-9e1d-bc0e1c90379d
For help, see: https://nodejs.org/en/docs/inspector
Server running at http://192.168.100.100:12345/

可以在浏览器中访问,运行成功!

d757781d054708097a217b9e883c3611.png

Node-RED 正式安装

这个时候 node.js 的环境已经安装完成,下面将开始安装 Node-RED

直接执行下面命令即可

[alick@devnet ~]# sudo npm install -g node-red

然后我们运行 node-red, 可以看到一些输出信息

[alick@devnet ~]# node-red
9 Jul 18:34:12 - [info] Welcome to Node-RED
===================9 Jul 18:34:12 - [info] Node-RED version: v1.1.1
9 Jul 18:34:12 - [info] Node.js  version: v14.5.0
9 Jul 18:34:12 - [info] Linux 3.10.0-1062.el7.x86_64 x64 LE
9 Jul 18:34:12 - [info] Loading palette nodes
9 Jul 18:34:13 - [info] Settings file  : /root/.node-red/settings.js
9 Jul 18:34:13 - [info] Context store  : 'default' [module=memory]
9 Jul 18:34:13 - [info] User directory : /root/.node-red
9 Jul 18:34:13 - [warn] Projects disabled : editorTheme.projects.enabled=false
9 Jul 18:34:13 - [info] Flows file     : /root/.node-red/flows_Al-TERAFORM-CENTOS-1.json
9 Jul 18:34:13 - [info] Creating new flow file
9 Jul 18:34:13 - [warn] ---------------------------------------------------------------------
Your flow credentials file is encrypted using a system-generated key.If the system-generated key is lost for any reason, your credentials
file will not be recoverable, you will have to delete it and re-enter
your credentials.You should set your own key using the 'credentialSecret' option in
your settings file. Node-RED will then re-encrypt your credentials
file using your chosen key the next time you deploy a change.
---------------------------------------------------------------------9 Jul 18:34:13 - [info] Server now running at http://127.0.0.1:1880/
9 Jul 18:34:13 - [info] Starting flows
9 Jul 18:34:13 - [info] Started flows

PM2是Node.js的进程管理工具,利用它可以非常容易地实现开机应用自动启动以及必要时自动启动的功能。

然后我们可以使用 pm2 来守护进程

[alick@devnet ~]# sudo npm install -g pm2

然后我们启动 node-red

[alick@devnet ~]# pm2 start node-red-------------__/____/____________/____/______//_/________/______/_______/_///____///_///______//___//__//_/___________//____//____/_____/________///______/_____________/____///_____/_____///_________/_____________/_____________/___//____________/_____________/_____________/__/__///______________///______________///__///__Runtime EditionPM2 is a Production Process Manager for Node.js applicationswith a built-in Load Balancer.Start and Daemonize any application:$ pm2 start app.jsLoad Balance 4 instances of api.js:$ pm2 start api.js -i 4Monitor in production:$ pm2 monitorMake pm2 auto-boot at server restart:$ pm2 startupTo go further checkout:http://pm2.io/-------------[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2
[PM2] PM2 Successfully daemonized
[PM2] Starting /usr/bin/node-red in fork_mode (1 instance)
[PM2] Done.
┌─────┬─────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name        │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├─────┼─────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0   │ node-red    │ default     │ N/A     │ fork    │ 24229    │ 0s     │ 0    │ online    │ 0%       │ 13.5mb   │ root     │ disabled │
└─────┴─────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

然后我们重启所有 ProcessId

[alick@devnet ~]# pm2 restart all
Use --update-env to update environment variables
[PM2] Applying action restartProcessId on app [all](ids: [ 0 ])
[PM2] [node-red](0) ✓
┌─────┬─────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name        │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├─────┼─────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0   │ node-red    │ default     │ N/A     │ fork    │ 24257    │ 0s     │ 1    │ online    │ 0%       │ 13.2mb   │ root     │ disabled │
└─────┴─────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

我们可以查看 node-red 相关系统信息如下:

[alick@devnet ~]# pm2 info node-redDescribing process with id 0 - name node-red 
┌───────────────────┬────────────────────────────────────┐
│ status            │ online                             │
│ name              │ node-red                           │
│ namespace         │ default                            │
│ version           │ N/A                                │
│ restarts          │ 1                                  │
│ uptime            │ 64s                                │
│ script path       │ /usr/bin/node-red                  │
│ script args       │ N/A                                │
│ error log path    │ /root/.pm2/logs/node-red-error.log │
│ out log path      │ /root/.pm2/logs/node-red-out.log   │
│ pid path          │ /root/.pm2/pids/node-red-0.pid     │
│ interpreter       │ node                               │
│ interpreter args  │ N/A                                │
│ script id         │ 0                                  │
│ exec cwd          │ /root                              │
│ exec mode         │ fork_mode                          │
│ node.js version   │ 14.5.0                             │
│ node env          │ N/A                                │
│ watch & reload    │ ✘                                  │
│ unstable restarts │ 0                                  │
│ created at        │ 2020-07-09T10:38:40.795Z           │
└───────────────────┴────────────────────────────────────┘Actions available 
┌────────────────────────┐
│ km:heapdump            │
│ km:cpu:profiling:start │
│ km:cpu:profiling:stop  │
│ km:heap:sampling:start │
│ km:heap:sampling:stop  │
└────────────────────────┘Trigger via: pm2 trigger node-red <action_name>Code metrics value 
┌────────────────────────┬───────────┐
│ Heap Size              │ 26.41 MiB │
│ Heap Usage             │ 93.64 %   │
│ Used Heap Size         │ 24.73 MiB │
│ Active requests        │ 0         │
│ Active handles         │ 4         │
│ Event Loop Latency     │ 0.45 ms   │
│ Event Loop Latency p95 │ 1.55 ms   │
└────────────────────────┴───────────┘Divergent env variables from local env Add your own code metrics: http://bit.ly/code-metricsUse `pm2 logs node-red [--lines 1000]` to display logsUse `pm2 env 0` to display environment variablesUse `pm2 monit` to monitor CPU and Memory usage node-red

我们可以查看 node-red 相关日志信息如下:

[alick@devnet ~]# pm2 logs node-red
[TAILING] Tailing last 15 lines for [node-red] process (change the value with --lines option)
/root/.pm2/logs/node-red-error.log last 15 lines:
/root/.pm2/logs/node-red-out.log last 15 lines:
0|node-red | ---------------------------------------------------------------------
0|node-red | Your flow credentials file is encrypted using a system-generated key.
0|node-red | 
0|node-red | If the system-generated key is lost for any reason, your credentials
0|node-red | file will not be recoverable, you will have to delete it and re-enter
0|node-red | your credentials.
0|node-red | 
0|node-red | You should set your own key using the 'credentialSecret' option in
0|node-red | your settings file. Node-RED will then re-encrypt your credentials
0|node-red | file using your chosen key the next time you deploy a change.
0|node-red | ---------------------------------------------------------------------
0|node-red | 
0|node-red | 9 Jul 18:38:45 - [info] Starting flows
0|node-red | 9 Jul 18:38:45 - [info] Started flows
0|node-red | 9 Jul 18:38:45 - [info] Server now running at http://127.0.0.1:1880/

我们保存现在的 process 信息然后设置为开机启动

[alick@devnet ~]# pm2 save
[PM2] Saving current process list...
[PM2] Successfully saved in /root/.pm2/dump.pm2[alick@devnet ~]# pm2 startup
[PM2] Init System found: systemd
Platform systemd
Template
[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
After=network.target[Service]
Type=forking
User=root
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/root/.pm2
PIDFile=/root/.pm2/pm2.pid
Restart=on-failureExecStart=/usr/lib/node_modules/pm2/bin/pm2 resurrect
ExecReload=/usr/lib/node_modules/pm2/bin/pm2 reload all
ExecStop=/usr/lib/node_modules/pm2/bin/pm2 kill[Install]
WantedBy=multi-user.targetTarget path
/etc/systemd/system/pm2-root.service
Command list
[ 'systemctl enable pm2-root' ]
[PM2] Writing init configuration in /etc/systemd/system/pm2-root.service
[PM2] Making script booting at startup...
[PM2] [-] Executing: systemctl enable pm2-root...
Created symlink from /etc/systemd/system/multi-user.target.wants/pm2-root.service to /etc/systemd/system/pm2-root.service.
[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save[PM2] Remove init script via:
$ pm2 unstartup systemd

访问浏览器界面,我们可以通过 1880 端口来正常访问 Node-RED 了。

访问的链接为 http://{Node-RED-machine-ip-address}:1880

c30ad1953fd8206026e8e7bf1f2af6bf.png

到这里,通过这篇详细的教程,相信大家已经了解如何安装 Node-RED 了,欢迎关注,我们将继续分享和深入学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266561.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python处理mysql数据结构_python环境下使用mysql数据及数据结构和二叉树算法(图)...

python环境下使用mysql数据及数据结构和二叉树算法(图)&#xff1a;1 python环境下使用mysql2使用的是 pymysql库3 开始-->创建connection-->获取cursor-->操作-->关闭cursor->关闭connection->结束45 代码框架6 import pymysql.cursors7 ###连接数据库8 con…

大数据工作流_大数据和人工智能时代下的数字化工作流

点击上方“Bentley软件”可以订阅哦本文作者Bentley 软件公司高级技术经理赵顺耐大数据、人工智能以及与之相伴相生的物联网已经成为现代社会的运行方式&#xff0c;信息技术的急速发展&#xff0c;和数据量爆炸式增长&#xff0c;改变了整个社会传统的运行方式。人类与信息技术…

多租户系统技术实现mysql_SaaS “可配置”和“多租户”架构的几种技术实现方式...

1、数据存储方式的选择多租户(Multi-Tenant )&#xff0c;即多个租户共用一个实例&#xff0c;租户的数据既有隔离又有共享&#xff0c;说到底是要解决数据存储的问题。常用的数据存储方式有三种。方案一&#xff1a;独立数据库一个Tenant&#xff0c;一个Database“的数据存储…

全国计算机等级考试题库二级C操作题100套(第15套)

更多干货推荐可以去牛客网看看&#xff0c;他们现在的IT题库内容很丰富&#xff0c;属于国内做的很好的了&#xff0c;而且是课程刷题面经求职讨论区分享&#xff0c;一站式求职学习网站&#xff0c;最最最重要的里面的资源全部免费&#xff01;&#xff01;&#xff01;点击进…

iOS如何判断当前网络的运营商

2019独角兽企业重金招聘Python工程师标准>>> 在IOS上存在retain屏&#xff0c;经常需要在一些时刻用到高清图&#xff0c;有些时候也要到普通图。 在网络条件很爽的情况下&#xff0c;这当然不在话下。如果咱是iphone用户&#xff0c;又正好用的是移动卡。 如果还用…

Py函数直接传入root是啥意思_Python内部函数——用处何在?

这是一篇译文&#xff0c;原文地址&#xff1a;https://realpython.com/inner-functions-what-are-they-good-for/1. 封装内部函数可以免受函数之外的情况的影响&#xff0c;也就是说&#xff0c;对于全局命名空间而言&#xff0c;它们是隐藏的。下面是一个简单的例子&#xff…

Linux 和 Windows 平台不同的 UCS-2 编码

2019独角兽企业重金招聘Python工程师标准>>> 以下是有关两个平台 UCS-2 编码的潜规则&#xff1a; 1, UCS-2 不等于 UTF-16。 UTF-16 每个字节使用 ASCII 字符范围编码&#xff0c;而 UCS-2 对每个字节的编码可以超出 ASCII 字符范围。UCS-2 和 UTF-16 对每个字符至…

vld检测不输出_输出轴热处理形变超差,找找原因

这里有最实用的技术&#xff0c;点击↑↑关注作者&#xff1a;阚亚威单位&#xff1a;镇江液压股份有限公司来源&#xff1a;《金属加工(热加工)》杂志我公司摆线液压马达输出轴材料主要为20CrMnTi&#xff0c;热处理工艺为渗碳直接淬火低温回火&#xff0c;工艺如图1所示。近期…

java 独占锁_锁分类(独占锁、分拆锁、分离锁、分布式锁)

一、java内存模型提到同步、锁&#xff0c;就必须提到Java的内存模型&#xff0c;为了提高程序的执行效率&#xff0c;java也吸收了传统应用程序的多级缓存体系。在共享内存的多处理器体系架构中&#xff0c;每个处理器都拥有自己的缓存&#xff0c;并且定期地与主内存进行协调…

url模糊匹配优化_企业必备的网站SEO优化解决方案

一、网站优化与调整倡议一个好网站不只要满足阅读者&#xff0c;还要契合搜索引擎规则、满足搜索引擎快照抓取、赋予评级、提升关键词排序等。我们站在用户角度和搜索引擎规则根底上为您提供一套完好的SEO处理计划SEO处理计划SEO倡议大纲&#xff1a;1、目的客户剖析与定位&…

中文能用rsa加密吗_外文文献数据库能用中文词进行检索吗?

大家使用外文文献数据库进行检索的时候可能想过一个问题&#xff1a;我们可以使用中文关键词进行检索吗&#xff1f;上文献检索课的老师可能会这样回答&#xff1a;在一般情况下&#xff0c;是不可以的。那么实际情况是怎样的呢&#xff1f;我们找几个外文文献数据库来验证一下…

【maven3学习之三】maven构建一个简单的Hello World

2019独角兽企业重金招聘Python工程师标准>>> 在写之前我先需要配置一下setting.xml。 首先是localRepository&#xff0c;默认情况下是【你的用户目录】/.m2/repository作为本地库的目录&#xff0c;但是我希望将其放在D:\maven_localRepository的目录下面。 如果…

python营销骗局_python案例:金融营销活动中欺诈用户行为分析

首先&#xff0c;数据导入 1 importnumpy as np2 importpandas as pd3 from collections importCounter4 importmatplotlib.pyplot as plt5 from pymining importitemmining,assocrules,perftesting,seqmining6 importpyecharts as pe7 rtpd.read_csv(r"E:\transaction_tr…

你真的会数钱吗?

本文已迁移至&#xff1a;http://thinkinside.tk/2013/01/01/money.html 快年底了&#xff0c;假如你们公司的美国总部给每个人发了一笔201212.21美元的特别奖金&#xff0c;作为程序员的你&#xff0c; 该如何把这笔钱收入囊中&#xff1f; Table of Contents 1 美元&#xff…

Maven 系统环境变量配置

Download http://maven.apache.org/download.cgi http://mirrors.shu.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.zip 环境变量 1.添加 MAVEN_HOME&#xff1a; 变量名&#xff1a;MAVEN_HOME  变量值&#xff1a;C:\Program\apache-maven-3.5.4 注…

eclipse中文乱码解决_解决git status显示中文文件名乱码问题

使用 git status 查看本地有改动但未提交的中文文件名时&#xff0c;发现会显示为一串数字&#xff0c;没有显示中文的文件名。具体如下所示&#xff1a;$ git status# 位于分支 master# 尚未暂存以备提交的变更:# (使用 "git add ..." 更新要提交的内容)# (使用 &qu…

MongoDB 3.X 用户权限控制

摘要&#xff1a; MongoDB 3.0 安全权限访问控制&#xff0c;在添加用户上面3.0版本和之前的版本有很大的区别&#xff0c;这里就说明下3.0的添加用户的方法。 环境、测试&#xff1a; 在安装MongoDB之后&#xff0c;先关闭auth认证&#xff0c;进入查看数据库&#xff0c;只有…

java enum 变量_java枚举使用详解

package com.ljq.test;/*** 枚举用法详解** author jiqinlin**/public class TestEnum {/*** 普通枚举** author jiqinlin**/public enum ColorEnum {red, green, yellow, blue;}/*** 枚举像普通的类一样可以添加属性和方法&#xff0c;可以为它添加静态和非静态的属性或方法**…

c#小游戏_C#小游戏—钢铁侠VS太空侵略者

身为漫威迷&#xff0c;最近又把《钢铁侠》和《复仇者联盟》系列又重温了一遍&#xff0c;真的是印证了那句话&#xff1a;“读书百遍&#xff0c;其意自现”。看电影一个道理&#xff0c;每看一遍&#xff0c;都有不懂的感受~ 不知道大伙是不是也有同样的感受&#xff0c;对于…

VMware Workstation 虚拟机性能优化指南

我们经常使用虚拟机来体验各种新系统&#xff0c;做各类新鲜应用的测试&#xff0c;由于VMware Workstation虚拟机功能强大&#xff0c;又适用于最新的 Windows / linux /Sun等平台&#xff0c;而且操作方便&#xff0c;所以其普及率很高&#xff01;而 VMware Workstation 本身…