惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
爱范儿
爱范儿
T
The Exploit Database - CXSecurity.com
量子位
T
Tailwind CSS Blog
T
Threatpost
The GitHub Blog
The GitHub Blog
AWS News Blog
AWS News Blog
云风的 BLOG
云风的 BLOG
K
Kaspersky official blog
P
Proofpoint News Feed
博客园 - 司徒正美
L
LangChain Blog
T
Threat Research - Cisco Blogs
C
CERT Recently Published Vulnerability Notes
罗磊的独立博客
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 叶小钗
S
Secure Thoughts
The Last Watchdog
The Last Watchdog
Spread Privacy
Spread Privacy
H
Hacker News: Front Page
T
Troy Hunt's Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News
W
WeLiveSecurity
A
Arctic Wolf
Apple Machine Learning Research
Apple Machine Learning Research
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
P
Proofpoint News Feed
T
Tor Project blog
T
The Blog of Author Tim Ferriss
I
Intezer
P
Privacy & Cybersecurity Law Blog
美团技术团队
N
Netflix TechBlog - Medium
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Vulnerabilities – Threatpost
Application and Cybersecurity Blog
Application and Cybersecurity Blog
G
Google Developers Blog
Attack and Defense Labs
Attack and Defense Labs
T
Tenable Blog
月光博客
月光博客
Stack Overflow Blog
Stack Overflow Blog
J
Java Code Geeks
腾讯CDC
Microsoft Security Blog
Microsoft Security Blog
A
About on SuperTechFans
Last Week in AI
Last Week in AI

博客园 - 泡面 @ 幸福

nodejs&wsl&vscode&docker开发环境搭建 python中list数组指定类型 windows10安装Trading View出错解决办法 windows or linux 64位安装ta-lib包 在centos7升级nodejs到最新版本 一张自画的RBAC用户、组、角色、权限、指令、资源图 JSON树形格式从子级获取所有父级ID JSON数据格式生成无限级树结构 MYSQL查询上级和下级 码云push时提示 DeployKey does not support push code fatal: Could not read from remote repository. git常用命令 thinkjs框架发布上线PM2管理,静态资源访问配置 登陆服务器提示“You need to run "nvm install N/A" to install it before using it.” CentOS 7.x 用shell增加、删除端口 CentOS 7.X 安全手记 Centos 7.x nginx隐藏版本号 centos7磁盘挂载及取消 CentOS 7.4上网速度慢,修改DNS! Centos7.4 安装Docker
在centos7开启SSH服务
泡面 @ 幸福 · 2020-02-20 · via 博客园 - 泡面 @ 幸福

1、查看是否已安装了SSH服务

  # rpm -qa | grep ssh

   

  该系统中没有安装SSH服务

2、安装SSH服务

  # yum install openssh-server

     

 安装成功

 3、启动SSH服务

  1)、修改配置文件

  # vi /etc/ssh/sshd_config

  

 esc+:wq 保存退出

  2)、启动服务

  # /bin/systemctl start sshd.service  (该命令没有回显说明成功了)

  3)、在docker会提示错误:Failed to get D-Bus connection: Operation not permitted

报这个错的原因是dbus-daemon没能启动。systemctl并不是不能使用。将CMD或者entrypoint设置为/usr/sbin/init即可。docker容器会自动将dbus等服务启动起来。

  a)、退出docker

  b)、重新创建容器

    docker run -d -it --privileged aipeli/node:v1 /usr/sbin/init

    在创建容器时一定要把端口映射带!

    docker run -d -it -p 3000:3000 --privileged aipeli/node:v1 /usr/sbin/init

  c)、进入容器

    docker exec -it 91 /bin/bash

 4、查看Openssl-server版本号

  # sshd -v

5、生成公钥

  1)、进行 cd ~/.ssh,如果不存在,说明没有创建公钥

  2)、生成公钥、私钥

  # ssh-keygen -t rsa -C "xxx@163.com"

  3)、查看公钥

  # cat ~/.ssh/id_rsa.pub

  

6、将公钥拷贝到gitee里配置

  1)、先创建一个仓库

  2)、在这个仓库里增加公钥

  

7、在docker可centos服务器上时行测试

  # ssh -T git@gitee.com

  1)、在docker里黙认没有ssh客户端工具

  # yum install openssh-clients

  2)、继续进行测试(3次回车)

  

   3)、测试成功

   4)、在docker中创建存放代码的目录,如:/www

   5)、在www目录中git clone 仓库,一定要用ssh协议,如果仓库为私有时需要输入用户名密码

  # git clone git@gitee.com:aipeli/webhook.git

  6)、查看远程仓库连接,进入/www/webhook目录(/www目录应该从宿主机上挂载,数据与容器分离更于自动化布署)

如果要挂载目录,创建容器的命令则改为:

  # docker run -d -it -p 3000:3000 -v /wwwroot:/www --privileged aipeli/node:v1 /usr/sbin/init

    /wwwroot:为宿主的目录

    /www:为docker容器的目录

  # git remote -v

    

 到这里,gitee仓库、SSH配置、docker的目录结构配置完成了!

8、在docker /opt目录中布署文件

  1)、创建目录  mkdir webhook

  # npm init

  # npm install  gitee-webhook-handler --save

  2)、修改package.json

  "start": "node index.js"

  3)、创建deploy.sh文件

 #! /bin/bash


git reset --hard origin/master
git clean -f
git pull origin master
npm install
npm run test
npm run start

  4)、创建index.js文件

 var http = require('http')

var createHandler = require('gitee-webhook-handler')
var handler = createHandler({ path: '/webhooks_push', secret: '123456' })# post 所需要用到的秘钥

function run_cmd(cmd, args, callback) {
  var spawn = require('child_process').spawn;
  var child = spawn(cmd, args);
  var resp = "";
  child.stdout.on('data', function(buffer) { resp += buffer.toString(); });
  child.stdout.on('end', function() { callback (resp) });
}
handler.on('error', function (err) {
  console.error('Error:', err.message)
})
handler.on('Push Hook', function (event) {  # 这个地方就是GitHub 和 Gitee 不一样的地方,需要注意
  console.log('Received a push event for %s to %s',
    event.payload.repository.name,
    event.payload.ref);
    run_cmd('sh', ['./deploy.sh'], function(text){ console.log(text) });# 需要执行的脚本位置
})
try {
  http.createServer(function (req, res) {
    handler(req, res, function (err) {
      res.statusCode = 404
      res.end('no such location')
    })
  }).listen(3000) # 服务监听的端口,可以自行修改
}catch(err){
  console.error('Error:', err.message)
}

  5)、运行node index.js

9、配置nginx端口转发

  1)、查看docker端口状态,docker ps

    

   2)、在/www/server/panel/vhost/nginx下创建webhook.aipeli.com.conf配置文件

server
{
  listen 80 default_server;
  server_name webhook.aipeli.com;
  location / {
  proxy_pass http://172.17.0.2:3000;
  }
}

  3)、在宝塔控制面板上打开3000端口(很重要!!!

查看端口是否开启

5、映射端口到docker