小编Max*_*ock的帖子

是否可以忽略一行的pyright检查?

我需要忽略一行的pyright检查。有什么特别的评论吗?

def create_slog(group: SLogGroup, data: Optional[dict] = None):
    SLog.insert_one(SLog(group=group, data=data))  # pyright: disable
Run Code Online (Sandbox Code Playgroud)

# pyright: disable -- 不起作用

python pyright

10
推荐指数
2
解决办法
3405
查看次数

如何从 winston@3 记录器输出中删除 [Symbol] 字段?

这是 winston@3 记录器的演示代码:

const { createLogger, format, transports } = require("winston")
const { combine, timestamp, prettyPrint } = format

const logger = createLogger({
  format: combine(timestamp(), prettyPrint({ colorize: true }))
})

logger.add(new transports.Console())

logger.info("test message", { data: { a: 1, b: [1, 2, 3, 4], d: new Date() } })
Run Code Online (Sandbox Code Playgroud)

它打印:

{ data: { a: 1, b: [ 1, 2, 3, 4 ], d: 2018-07-17T09:38:43.253Z },
  level: 'info',
  message: 'test message',
  timestamp: '2018-07-17T09:38:43.253Z',
  [Symbol(level)]: 'info',
  [Symbol(splat)]:
   [ { data: { a: …
Run Code Online (Sandbox Code Playgroud)

logging node.js winston

7
推荐指数
1
解决办法
2371
查看次数

如何在 docker-compose 文件中配置 Caddy 2 以在没有绑定安装的 Caddyfile 的情况下进行反向代理?

我有一个包含两个服务的 docker-compose 文件:

  • 我的 webapp,它暴露了端口 3000
  • 球童,它用作我的网络应用程序的反向代理并提供 HTTPS

如果我使用绑定安装的 Caddyfile,它可以正常工作:

caddy:
    image: caddy:2.0.0-alpine
    ports:
      - 80:80
      - 443:443
    volumes:
      - caddy:/data
      - .Caddyfile:/etc/caddy/Caddyfile
Run Code Online (Sandbox Code Playgroud)

Caddy 文件非常简单:

my-domain.com {
    reverse_proxy my-app:3000
}

Run Code Online (Sandbox Code Playgroud)

但我想在不上传 Caddyfile 的情况下将其部署在服务器上。我想像这样配置我的 docker-compose.yml:

version: "3"

services:
  my-app:
    image: my-app
    expose:
      - 3000

  caddy:
    image: caddy:2
    ports:
      - 80:80
      - 443:443
    environment:
      - reverse_proxy_from=my-app:3000
      - reverse_proxy_to=my-domain.com
    volumes:
      - caddy:/data


volumes:
  caddy:

Run Code Online (Sandbox Code Playgroud)

也许也可以通过球童 API 来做到这一点。当我尝试在裸操作系统上配置反向代理时,它可以工作。但是当我尝试使用 docker ( docker-compose exec caddy caddy reverse-proxy --from my-site.net --to my-app:3000)执行此操作时,我得到了一些不清楚的错误消息:

root@test:/xxx# docker-compose exec caddy …
Run Code Online (Sandbox Code Playgroud)

docker-compose caddy

6
推荐指数
2
解决办法
2万
查看次数

Caddy:如何通过 API 添加多个反向代理而不使用 Caddyfile?

我可以使用这样的 Caddyfile 拥有一个具有多个域的服务器(+ https 和 LetsEncrypt):

site1.com {
  reverse_proxy localhost:3001
}

site2.com {
  reverse_proxy localhost:3002
}

site3.com {
  reverse_proxy localhost:3003
}
Run Code Online (Sandbox Code Playgroud)

但我想在没有 Caddyfile 的情况下运行 caddy,并且我想通过管理 API 动态添加此类代理。

他们有一个API,但我不明白如何在不需要 Caddyfile 的情况下为 caddy 添加新的反向代理。

我正在寻找此请求的 JSON 格式,它可以是这样的(伪请求):

curl localhost:2019/load \
    -X POST \
    -H "Content-Type: application/json" \
    -data "{'domain': 'site1.com', 'tls': 'yes', 'proxy': 'http://localhost:3001'}"

curl localhost:2019/load \
    -X POST \
    -H "Content-Type: application/json" \
    -data "{'domain': 'site2.com', 'tls': 'yes', 'proxy': 'http://localhost:3002'}"

Run Code Online (Sandbox Code Playgroud)

是否可以仅通过 API 添加反向代理?我使用的是Caddy v2.0

caddy

5
推荐指数
1
解决办法
2862
查看次数

如何使用与 git url 中不同的名称安装 Galaxy 角色?

有一个银河角色:git@site.net/ansible-myapp.git

我可以这样安装:

ansible-galaxy install git+git@site.net/ansible-myapp.git
Run Code Online (Sandbox Code Playgroud)

,但它创建了一个名为“ansible-myapp”的角色。

如何安装与 git url 中名称不同的角色?

可以通过requirements.yml来完成:

- src: git@site.net/ansible-myapp.git
  scm: git
  name: myapp
Run Code Online (Sandbox Code Playgroud)

ansible-galaxy install -r requirements.yml将以名称“myapp”安装它

但是如何在没有requirements.yml 文件的情况下通过一个命令来完成此操作呢?

ansible ansible-galaxy

5
推荐指数
1
解决办法
485
查看次数

如何为winston@3记录器制作自定义json格式化程序?

我正在尝试为 Winston v3 制作自定义 json 格式化程序。

这是一个带有演示的单个文件:

const { createLogger, format, transports } = require("winston")
const { combine, timestamp, prettyPrint } = format

const logger = createLogger({
  format: combine(timestamp(), prettyPrint())
})

logger.add(new transports.Console())

logger.info("test message", { data: { a: 1, b: [1, 2, 3, 4], d: new Date() } })

try {
  throw new Error("I'm an error!")
} catch (err) {
  logger.error(err)
}
Run Code Online (Sandbox Code Playgroud)

它打印:

{ data: { a: 1, b: [ 1, 2, 3, 4 ], d: 2018-07-21T08:59:27.958Z },
  level: …
Run Code Online (Sandbox Code Playgroud)

logging node.js winston

4
推荐指数
2
解决办法
2万
查看次数

如果启用了 ufw,如何运行 ansible 任务?

仅当 Ubuntu 服务器上启用了 ufw 时,我才需要运行一些任务。

伪代码如下所示:

 - name: detect if ufw is enabled
   magical_module: ???
   register: ufw_is_enabled

 - name: my task
   when: ufw_is_enabled
Run Code Online (Sandbox Code Playgroud)

我只看到这个不优雅的解决方案:

  • 远程执行ufs status
  • 解析输出:
root@test:~# ufw status
Status: inactive
Run Code Online (Sandbox Code Playgroud)

也许启用 ufw 时有一些文件?在这种情况下,就可以使用stat模块了。还有其他解决方案吗?

ansible ufw

2
推荐指数
1
解决办法
2501
查看次数