AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-306822

emmdee's questions

Martin Hope
emmdee
Asked: 2020-06-30 12:39:50 +0800 CST

在子任务上使用带有标签的 Ansible include_tasks

  • 6

Ansible 2.8.1

在我的剧本tasks/目录中:

main.yml
dev.yml

在main.yml我有一个这样的块:

- include_tasks: dev.yml
  when: ec2_tag_env == 'dev'

它工作正常


但是,如果我尝试使用标签调用 dev.yml 中的特定任务。它不会在运行期间限定任务

例如,这个标记的任务在dev.yml:

- name: Pull the latest image
  docker_image:
    name: "{{ dev_image }}"
    source: pull
  tags:
    - container

当我使用它运行剧本时-t container ,它将不符合条件,因为该include_tasks步骤没有该标签。


添加标签include_tasks当然可以解决问题,但我需要跟踪标签,因为它们被添加到子任务并在这里添加它们:

- include_tasks: dev.yml
  when: ec2_tag_env == 'dev'
  tags:
    - container

问题

  • 是否有可能让 Ansible 只“知道”include_tasks块内有哪些任务并提取适用的标签?

  • 实现这一目标的最佳实践是什么?

我宁愿不必做的事情:

  • 把一切main.yml。我在这本剧本中有很多任务,我真的很想把它们整理成文件。
  • 手动标记我的所有include_tasks块及其所有子标签。管理听起来像是一场噩梦。
ansible ansible-playbook
  • 2 个回答
  • 6832 Views
Martin Hope
emmdee
Asked: 2020-06-09 17:27:55 +0800 CST

一位 Mac 用户仍然坚持使用过期的 AddTrust 根 CA 证书,但服务器已更新

  • 1

我最近遇到了今年 5 月 30 日到期的 Sectigo 根证书问题:https ://gist.github.com/minaguib/c8db186af450bceaaa7c452ba6a9901b

我更新了我们服务器上的证书链,除了一个用户之外,所有员工和用户的更改都是无缝的。

遇到问题的单个用户正在为我们的网站加载无效链。下面有截图。

服务器端注意事项:

  • 服务器已更新并确认证书和链正常运行(附截图)。
  • 我有一个客户端仍在加载无效的证书链。
  • 终止 TLS 的服务器是一个 Amazon ALB 实例。
  • 服务器证书链已使用在线服务进行了验证,以确保安全。下面有一个屏幕截图显示了这一点。

客户端注释:

  • 删除了 Mac 钥匙串中的任何“过期”或“无效”条目。

  • 在 Mac 钥匙串中搜索对“AddTrust”的任何引用

  • 完全清除所有浏览器缓存。Chrome 是最新版本 83.0.4103.97 (但是 Safari 也失败了,所以它不是我不认为的浏览器)

  • 检查日期/时间

以下是最终用户在浏览器证书链中看到的内容:

坏证书链

以下是其他人在浏览我们的网站时看到的内容:

良好的证书链

这是来自 3rd 方在线服务的验证,以确认链的有效性:

服务器证书链

ssl certificate-authority ssl-certificate
  • 1 个回答
  • 1036 Views
Martin Hope
emmdee
Asked: 2019-08-31 09:49:58 +0800 CST

Ansible yum 模块相当于 rpm -i --force

  • 0

我试图让 Ansible 强制安装一个 rpm 包来覆盖现有的包。

这有效:

- name: RPM force install nodesource and yum clean all
  shell: rpm -i --nosignature --force "https://rpm.nodesource.com/{{ nodejs_rhel_rpm_dir }}/el/{{ ansible_distribution_major_version }}/{{ ansible_architecture }}/nodesource-release-el{{ ansible_distribution_major_version }}-1.noarch.rpm" && yum clean all
  args:
    executable: /bin/bash
  tags:
    - nodejs

我宁愿这样做,而不是使用shell模块:

- name: Install nodesource npm/node packages
  yum:
    name: "https://rpm.nodesource.com/{{ nodejs_rhel_rpm_dir }}/el/{{ ansible_distribution_major_version }}/{{ ansible_architecture }}/nodesource-release-el{{ ansible_distribution_major_version }}-1.noarch.rpm"
    state: latest
    update_cache: yes
  tags:
    - nodejs

但是,如果不直接使用 rpm,我似乎无法强制覆盖现有的安装版本。在 Ansible 中执行此操作的最佳方法是什么,而不使用shellwhich 违反配置管理的最佳实践。

我是否将被迫分两步卸载并重新安装软件包?

编辑:

为了明确这一点,正在安装的 .rpm 与当前安装的不同。

目前安装了一个:https://rpm.nodesource.com/pub_8.x/el/7/x86_64/nodesource-release-el7-1.noarch.rpm

新的是:https://rpm.nodesource.com/pub_10.x/el/7/x86_64/nodesource-release-el7-1.noarch.rpm

ansible
  • 2 个回答
  • 3582 Views
Martin Hope
emmdee
Asked: 2019-07-25 12:29:31 +0800 CST

Nginx速率限制,使用多个速率规则

  • 3

使用nginx限速,以这条规则为例:

limit_req_zone $request_limiting_zone_key zone=request_limiting_search:20m rate=30r/m;

这将设置每分钟 30 个请求。但是,如果我想堆叠第二条规则怎么办,所以逻辑是“每分钟 30 个请求,或每秒 1 个请求。以先到者为准”

这样做的原因是我们仍然想要 30/min 的上限,但是有一些奇怪的尝试,我们会在 1-2 秒的时间内看到 10x 请求的垃圾邮件。当请求通过这么快时,这会导致一些问题。因此,我们希望将用户限制为每秒 1 个请求,并且上限为每分钟 30 个。

我阅读了文档参考,但在堆叠不同的费率规则方面没有看到太多。

这可能吗?如果是这样,语法是什么?

networking
  • 1 个回答
  • 2939 Views
Martin Hope
emmdee
Asked: 2019-03-29 23:02:56 +0800 CST

Ansible 条件 - 通配符匹配字符串

  • 15

我在 Ansible 任务中有以下条件:

when: ec2_tag_Name == 'testhost01'

它工作正常,但是我想在ec2_tag_Name现场匹配通配符。

所以像这样

when: ec2_tag_Name == 'testhost*'

目标是匹配任何类似testhostx testhost12 testhostABCetc 的内容,只是匹配testhost字符串开头的任何内容。

这可能吗?似乎无法让它工作。

ansible
  • 2 个回答
  • 43217 Views
Martin Hope
emmdee
Asked: 2018-12-11 14:15:52 +0800 CST

Jenkins Pipeline:在另一个 Env Var 声明中使用 Env Var

  • 1

我想让我的长“ssh”命令在我的管道中作为一个简单的变量可重用。为此,最好在 var 中声明我的主机名,然后在另一个 var 声明中使用该 var 来构建最终命令:

environment {
    BUILDHOST   = 'buildhost.example.com'
    SSHCMD      = 'ssh -o StrictHostKeyChecking=no jenkins@${env.BUILDHOST}'
}

所以在概念上是这样的:

pipeline {
    agent any
    environment {
        BUILDHOST   = 'buildhost01.example.com'
        SSHCMD      = 'ssh -o StrictHostKeyChecking=no jenkins@${env.BUILDHOST}'
    }
    stages {
        stage('SSH Testing') {
            steps {
                sshagent ( ['jenkins_ssh']) {
                    sh '''
                        $SSHCMD uname -a
                    '''
                }
            }
        }
        stage('Example Test') {
            steps {
                sshagent ( ['jenkins_ssh']) {
                    sh '''
                        $SSHCMD /run/something.sh
                    '''
                }
            }
        }
    }
}

当我在没有任何替换的情况下声明 var 时,它工作正常: SSHCMD = 'ssh -o StrictHostKeyChecking=no [email protected]'

但我似乎无法将变量嵌套在一起。有什么办法可以做到这一点?

jenkins
  • 1 个回答
  • 1258 Views
Martin Hope
emmdee
Asked: 2018-09-12 14:13:39 +0800 CST

RDS Endpoint 始终映射到外部 IP

  • 1

我有一个 RDS 实例正在运行,并且可以访问 Internet。

我希望 VPC 中的实例在内部而不是通过互联网连接到它。

根据另一个问题(https://stackoverflow.com/questions/21089582/amazon-rds-endpoint-internal),如果从 VPC 内部查询,主机连接字符串应映射到内部 IP。这不起作用,无论如何我都会获得外部IP。

  • 我只有一个 VPC,所以没有使用对等互连。
  • 我确实设置了自定义 DHCP 选项,这可能是我的问题所在。

我的 VPC 的 DHCP 选项集是 domain-name = mysite.local;domain-name-servers = 10.10.51.254;

由于我的自定义 DHCP 选项集,我有一种感觉,这是它坏掉的地方。mysite.local是本地域,并且10.10.51.254是本地绑定服务器(不使用 Route53)。

我是否需要在我的 DNS 服务器中配置某种正向查找,us-east-1.rds.amazonaws.com或者我在某处缺少某些配置?我认为这应该是 VPC 中的“自动”,所以我想我错了。

domain-name-system
  • 1 个回答
  • 1763 Views
Martin Hope
emmdee
Asked: 2018-06-27 13:28:17 +0800 CST

Terraform:为远程状态文件选择凭据

  • 12

我在 Terraform 中有现有的基础设施,并且已经使用了一段时间。最近,我交换了本地笔记本电脑的 AWS 凭证(存储在 中的凭证~/.aws/credentials),它停止工作,直到我重新设置这些凭证。

问题是我在 Terraform 源本身中声明了信誉,但它似乎根本没有使用它们。

terraform {
  backend "s3" {
    bucket = "example_tf_states"
    key    = "global/vpc/us_east_1/example_state.tfstate"
    encrypt = true
    region     = "us-east-1"
  }
}

provider "aws" {
  access_key = "${var.access_key}"
  secret_key = "${var.secret_key}"
  region = "${var.region}"
}



variable "access_key" {
  default = "<hidden_for_stack_exchange_post>"
}

variable "secret_key" {
  default = "<hidden_for_stack_exchange_post>"
}

variable "region" {
  default = "us-east-1"
}

访问 ID 权限是 100% 好的。我在上述 Terraform 变量声明中的aws configure设置中使用相同的帐户 ID 和密钥。~/.aws/credentials

只要有凭据,一切就可以正常工作~/.aws/credentials,但是一旦操作系统级别的凭据消失(即rm ~/.aws/credentials),我在尝试运行 Terraform 操作时会得到以下信息,例如terraform plan:

Failed to load backend:
Error configuring the backend "s3": No valid credential sources found for AWS Provider.
  Please see https://terraform.io/docs/providers/aws/index.html for more information on
  providing credentials for the AWS Provider

Please update the configuration in your Terraform files to fix this error.
If you'd like to update the configuration interactively without storing
the values in your configuration, run "terraform init".

~/.aws/credentials如果我通过运行重新填充aws configure它,它将再次正常工作。

我不明白——如果我的provider设置明确声明要在 Terraform 源代码中使用的凭证,为什么我的操作系统级 AWS 配置很重要?

如何使 Terraform 仅使用我的 Terraform 配置中定义的凭据,而忽略我的操作系统用户配置文件中的内容?

编辑,是Terraform v0.11.7

编辑:请注意,我正在尝试解决为什么在提供者声明中没有使用静态声明的凭据的问题。不寻找替代方法或解决方法。谢谢。

terraform
  • 4 个回答
  • 16286 Views
Martin Hope
emmdee
Asked: 2018-06-08 15:33:42 +0800 CST

Jenkins:通过管道脚本使用参数化触发器插件

  • 7

我需要从另一个作业触发 Jenkins 作业并将各种值传递给它以供以后的条件逻辑使用。似乎参数化触发器插件将完全满足我的需要。( https://plugins.jenkins.io/parameterized-trigger )

但是,这个插件我在文档和语法构建器中都没有看到任何关于管道语法的内容。

我使用的大多数插件都允许在管道脚本中使用。(詹金斯文件)。他们很少有语法文档,但我通常可以使用 Jenkins 中的语法构建器来获得正确的管道语法来使用插件。

是否可以在管道中使用这个插件(具体来说是多分支管道)?

如果没有,那么有没有其他方法可以从 Jenkins 管道中做我需要做的事情?(在向它传递一些值/参数时触发另一个作业)。

jenkins
  • 1 个回答
  • 15210 Views
Martin Hope
emmdee
Asked: 2018-05-05 10:47:04 +0800 CST

Chroot SFTP - 允许用户写入当前(chroot)目录

  • 7

我目前有一个 WORKING SFTP 登录,使用私钥登录,并且用户被 chroot 到他们的主目录。

目标:保留用户 chroot,但允许对相对 chroot 目录进行 WRITE 访问,而无需在任何地方指定任何路径或 cd。

换句话说,当 sftp 用户登录时,我不希望他们必须 cd 到另一个路径才能上传文件。

由于 chroot 目录需要完全的 root 所有权(由于 chroot 设计),我不确定这是否可能。

在 /etc/passwd 中:

sftpuser:x:1006:1006:,,,:/home/sftpuser:/bin/false

用户登录公钥位于:

/home/sftpuser/.ssh/authorized_keys

sshd_confg 中的 Chroot 规则:

Match User sftpuser
    ChrootDirectory /home/sftpuser
    ForceCommand internal-sftp
    AllowTCPForwarding no
    X11Forwarding no

主目录权限:

# ls -l /home/ |grep sftpuser
drwxr-xr-x 5 root      root     4096 May  4 11:24 sftpuser

# ls -l /home/sftpuser/
total 4
drwxrw-r-x 3 sftpuser sftpuser 4096 May  4 11:23 sftp_share

当前工作流程示例:

Connected to sftp.example.com.
sftp> ls
sftp_share

sftp> put testfile.txt
Uploading testfile.txt to /testfile.txt
remote open("/testfile.txt"): Permission denied

sftp> cd sftp_share

sftp> put testfile.txt
Uploading testfile.txt to /sftp_share/testfile.txt
testfile.txt

所需的工作流程:

Connected to sftp.example.com.
sftp> put testfile.txt
Uploading testfile.txt to /testfile.txt
testfile.txt

有没有办法允许上传(放置)到默认目录,而不必先 chdir?

我确实可以灵活地移动这些目录。例如,sftp chroot 目录不必在用户主目录中,我什至可以更改用户主目录(但用户仍然必须能够使用 authorized_keys 登录)。

请注意:我确实了解许多 SFTP 客户端,命令行 SFTP 客户端允许在登录时定义相对路径。这超出了这个问题的范围,我希望这个配置在服务器端完成,客户端只需要登录。

linux
  • 2 个回答
  • 17839 Views
Martin Hope
emmdee
Asked: 2018-05-04 10:52:12 +0800 CST

Graylog:是否可以一次查看一大块日志?

  • 1

有时我想将日志条目视为“标准”外观的基于文本的日志文件。

现在,有时我最终会转到生成日志的服务器,这样我就可以显示一个文本块来跟踪日志的时间线,这比通过 graylog 快一点。这完全违背了中央日志记录的目的,但它仍然节省了我的时间。

例如,有时脚本在解析包含 1,000 行数据的文件时需要启用调试。由于启用了调试,因此它会在解析行时将其处理的每一行都吐到日志文件中。我想将此视为一个顺序日志条目文件,而不是每个条目在 graylog ui 中都有自己的对象。

我确实意识到它具有“显示周围消息”功能,但它仍然在 gui 中的单个对象中显示每条消息。

在标准日志视图中看到这一点真的很棒。所以它看起来就像一个普通的基于文本的日志。

用例: 在 5 分钟内对包含 700 条日志消息的应用程序行为进行故障排除时,我不想单独扩展每条消息。如果我可以将这些日志作为“标准”日志文件而不是通过 GUI 来查看,那么人类可读性会更高。

这可能吗,如果可以,我该怎么做?谢谢

graylog
  • 1 个回答
  • 555 Views
Martin Hope
emmdee
Asked: 2018-04-25 10:49:10 +0800 CST

如何检查 Docker 容器重启的历史记录

  • 12

我正在尝试查找容器重启的历史记录。

当然STATUS,a 上的字段docker ps将显示当前的正常运行时间。

但是,如果我有一个具有重启策略的容器,例如restart: unless-stopped它已经经历了几次重启 -我如何检查重启/正常运行时间历史记录?

如果 docker 引擎本身不跟踪这个 - 有没有已知的好方法来处理这个?

docker
  • 2 个回答
  • 20257 Views
Martin Hope
emmdee
Asked: 2018-04-18 13:28:03 +0800 CST

在 Linux 和 Mac 中工作方式不同的已知内置命令

  • 0

在开发 Bash 脚本时,有时我会在 Docker 容器或虚拟机上运行它来测试它,但我构建脚本的理想场所就是在我的本地 MacOS 工作站上。

对于 Bash 脚本,到目前为止,这从来都不是问题。但是今天我注意到该date命令在 Linux 和 MacOS 之间的行为不同。

示例场景,向日期对象添加天数:

Linux:

root@host$ date -d "$(date) 3 days" +%Y-%m-%d
2018-04-20

苹果系统:

WS:tmp user$ date -d "$(date) 3 days" +%Y-%m-%d
usage: date [-jnRu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
            [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]

不起作用,所以我必须重新格式化它:

WS:tmp user$ date -j -v +3d -f "%Y-%m-%d" $(date +%Y-%m-%d) +%Y-%m-%d`
2018-04-20

多么痛苦!一个简单的 bash 脚本,现在我需要一个容器或虚拟机来进行一些简单的日期操作。

这让我觉得我正在以这种方式开发自己的脚,而我得到 Mac 的全部原因是因为它比任何 Windows 版本更接近 'nix 环境,所以我可以在其上进行简单的本地开发。

我的问题:

  • 这是许可问题吗?我的理解date是 GNU 实用程序,所以不应该有任何许可问题。
  • 因为直到今天我还没有遇到这个问题,是否有已知的行为不同的常见应用程序列表?
  • 在 Mac 上开发一些 bash 脚本是“坏习惯”吗?我已经做了一段时间了,直到现在才遇到问题。

感谢您对该主题的经验,谢谢!

linux
  • 1 个回答
  • 158 Views
Martin Hope
emmdee
Asked: 2018-03-29 10:59:43 +0800 CST

Docker Private Registry - 删除了所有图像,但仍显示在目录中

  • 5

按照官方文档(https://docs.docker.com/registry/spec/api/#deleting-an-image),我已经能够成功删除图像。正如预期的那样,删除后,图像无法再被拉取,也无法通过 API 调用其清单。

我觉得我已经完成了最困难的部分,但问题是删除完成后repo 仍然列在下面。/v2/_catalog我正在尝试完全清除注册表。

这是我的注册表撰写文件:

registry:
  image: registry:2.5.2
  container_name: registry-test
  ports:
    - 5007:5000
  environment:
    REGISTRY_STORAGE: s3
    REGISTRY_HTTP_TLS_CERTIFICATE: /etc/cert.crt
    REGISTRY_HTTP_TLS_KEY: /etc/cert.key
    REGISTRY_STORAGE_S3_ACCESSKEY: ******
    REGISTRY_STORAGE_S3_SECRETKEY: ******
    REGISTRY_STORAGE_S3_REGION: us-west-1
    REGISTRY_STORAGE_S3_BUCKET: ******
    REGISTRY_STORAGE_S3_SECURE: "true"
    REGISTRY_STORAGE_DELETE_ENABLED: "true"
  volumes:
    - /dockerdata/volumes/registry-test/etc/cert.crt:/etc/cert.crt
    - /dockerdata/volumes/registry-test/etc/cert.key:/etc/cert.key
  restart: unless-stopped

这是我删除图像的高级方法:

  1. 收集图像摘要: HEAD https://myprivateregistry:5001/v2/myimage/manifests/mytag添加"Accept: application/vnd.docker.distribution.manifest.v2+json"到调用的标题中

  2. 该调用返回带有值的标题键Docker-Content-Digest,例如sha256:b57z31xyz0f616e65f106b424f4ef29185fbd80833255d79dabc73b8eb873bd

  3. 使用第 2 步中的值,运行删除调用:DELETE https://myprivateregistry:5001/v2/myimage/manifests/sha256:b57z31xyz0f616e65f106b424f4ef29185fbd80833255d79dabc73b8eb873bd

  4. 注册表 API 返回202 Accepted

  5. 手动运行垃圾收集:registry garbage-collect /etc/docker/registry/config.yml

  6. 垃圾收集器从磁盘中删除关联的 blob(这里省略了日志,但它成功删除了 blob)

此时,我可以确认 blob 已从磁盘中完全删除,并且我无法再调用图像详细信息(如上面的步骤 1),所以我认为我已经完成了。

但是,在运行时:/v2/_catalog我的关联存储库仍然列出(即使其中没​​有图像)!显然它无法拉取或使用,但是既然它没有与之关联的图像,我如何才能从该列表中完全删除该存储库?

我在任何地方都看不到如何在 API 文档页面上正确删除它。也许我在某个地方错过了它?

编辑 -

我想添加更多关于注册表在上述删除发生之前和之后的外观的信息。

在上面的删除操作之前:

docker/registry/v2/repositories/myimage/_manifests/revisions/...
docker/registry/v2/repositories/myimage/_manifests/tags/... 
docker/registry/v2/repositories/myimage/_layers/sha256/... (5 layers listed)
docker/registry/v2/blobs/sha256/...

在上面的删除操作之后:

docker/registry/v2/repositories/myimage/_layers/sha256/... (5 layers listed)

所以唯一剩下的就是_layers列出了相同 5x 层的目录。这似乎是它仍然上市的原因_catalog

当我删除myimage文件夹(来自docker/registry/v2/repositories/myimage)时,存储库不再显示在_catalog

这似乎是一种从_catalog列表中清除它的方法。但是 - 如果图像有 2 个标签,但只有 1 个被删除 - 在这种情况下是否有理由删除任何内容_layers?如何处理多个版本的图像?显然,我不能仅仅破坏_layers目录作为最终方法,因为在现实世界中,会有许多图像的标记版本。所以这需要智能地完成。

我只是发现很难找到有关 Docker 注册表的维护/维护的任何文档,也很难找到_layers子目录的架构,以及为什么垃圾收集器不会像处理清单和 blob 那样清理该目录。

docker
  • 1 个回答
  • 6177 Views
Martin Hope
emmdee
Asked: 2018-03-08 14:02:37 +0800 CST

如何断开 OpenVPN 中的单个客户端连接?

  • 9

想强行踢出特定的用户连接。

操作系统是 Ubuntu 16,OVPN 服务器是 OpenVPN 2.3.10

我可以看到它们已连接,/etc/openvpn/openvpn-status.log其中列出了当前的客户端状态。并且他们的持久连接池被保存到/etc/openvpn/ipp.txt

我可以通过简单地循环 openvpn 守护进程来踢所有用户,service openvpn restart 但是我想踢一个单一用户。

我已经尝试过openvpn --help以及man openvpn搜索过谷歌,但没有看到任何东西。

操作系统是 Ubuntu 16,服务器是 OpenVPN 2.3.10

openvpn
  • 1 个回答
  • 24916 Views
Martin Hope
emmdee
Asked: 2018-01-31 09:11:26 +0800 CST

通过 fstab 挂载的 ramfs 自动归 root 所有

  • 1

ramfs之所以选择它,是因为文件写入磁盘的可能性为零(交换空间与 一起使用tmpfs)。tmpfs超出了这个问题的范围。

这是我fstab的挂载点条目:

ramfs /path/to/mount ramfs  defaults,nofail   0 0

安装后,我可以很好地设置权限:

chown -R myuser:myuser /path/to/mount

问题出现在重新启动后。重新启动后所有者成为根用户,它必须手动更改回我的用户。我需要做的就是在挂载时设置用户 ID(或通过重新启动保持)。

linux
  • 1 个回答
  • 2060 Views
Martin Hope
emmdee
Asked: 2018-01-10 11:10:59 +0800 CST

为什么 git 不信任受信任的证书?

  • 0

我的 git 服务器是 Gitlab,它是本地(私有)托管的,它有一个来自 comodo 的受信任证书,浏览器可以毫无问题地信任它。

如果我需要使用 HTTPS 而不是 SSH(在这种情况下来自 Ubuntu 16 机器),那么我总是必须通过http.sslVerify=false在我的 git 命令上使用来绕过 SSL 验证。

如果我不禁用验证,那么我会得到:

fatal: unable to access 'https://gitlab.mysite.cloud/myrepo/somerepo.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

我觉得我已经使用 HTTPS 从其他 git 服务器上拉下来了,而无需做任何特别的事情,所以我不确定在这种情况下发生了什么。

在我的工作站上,我使用 SSH,所以我从来没有遇到过这种情况,但我只是在我的 Mac 工作站上测试了 HTTPS,我得到了同样的消息。

有谁知道为什么 git 不信任我的受信任证书?

ssl
  • 2 个回答
  • 1272 Views
Martin Hope
emmdee
Asked: 2018-01-05 16:17:42 +0800 CST

Graylog Alert 会自动解决。

  • 0

Graylog v2.3.2

我的目标是让条件发出警报,并且警报保持打开状态,直到它被标记为已解决或应用定义的已解决条件。

我有一个警报设置,这是条件配置:

Configuration: Alert is triggered when messages matching
<full_message: "*Short*"> are received. Grace period: 15 minutes.
Including last 2 messages in alert notification. Configured to not
repeat notifications.

警报触发正常,但随后它会自行解决。

这是日志....

2018-01-04 23:56:23.699
Graylog checks test_alert (Field Content Alert Condition) condition on stream All messages
2018-01-04 23:56:23.699
Stream received messages matching <full_message:"Short"> (Current grace time: 15 minutes)
2018-01-04 23:56:23.699
Graylog triggers an alert for test_alert (Field Content Alert Condition) and starts sending notifications
2018-01-04 23:56:23.699
No notifications were configured for this alert
2018-01-04 23:56:28.526
Condition is no longer satisfied, alert is marked as resolved

为什么它说“条件不再满足”并解决警报?

我的目标是保持警报打开,直到有人解决它或通过另一个条件/等解决

graylog
  • 1 个回答
  • 1173 Views
Martin Hope
emmdee
Asked: 2017-11-28 13:58:33 +0800 CST

Jenkins + LDAP 插件 --- 有什么办法可以登录后门?

  • 6

每当我使用 LDAP/AD 对系统进行身份验证时,我都希望至少有一个“本地”管理员可以进入,即使目录服务出现故障/出现问题。本质上是一个“后门”,以防目录服务出现问题。

这在詹金斯可能吗?我一次只能看到启用 1 种身份验证方法的选项。

active-directory
  • 1 个回答
  • 3837 Views
Martin Hope
emmdee
Asked: 2017-11-23 13:10:18 +0800 CST

Jenkins Pipeline File - 将 Jenkinsfile 变量传递给进一步的命令

  • 5

问题:

在将 Jenkinsfile 中声明的变量传递给shssh 并在远程主机上执行的命令时,变量内容不会保留在远程主机上。

内置的 Jenkins 变量在本地和远程主机上都可以很好地保留。我定义的变量在本地可以正常工作,但不能在远程主机上转换。

虽然这个问题引用了 Docker,但这实际上是 100% 基于 Jenkins 管道的,因为它可以适用于任何有或没有 Docker 的示例。

背景:

我正在尝试根据当前构建标签动态创建图像名称并将该名称放入变量中。

然后我将该变量传递到sh远程到 Docker 主机的步骤中,并使用定义的名称运行构建步骤。

Jenkinsfile 适用部分的片段...

// The below stage just echo's out some stuff into a file dockerimgname.jenkins.out
stage ('Construct Img name') {
  sh '''echo ${BUILD_TAG} | awk '{print tolower($0)}' | sed 's/jenkins-//' > dockerimgname.jenkins.out'''
}

// This stage reads that file from previous stage and puts the value into variable.
// The variable is echo'd locally which works perfectly. Then ssh is called to execute command on remote host. That's where the variable value doesn't work.
stage ('Build Target Container') {
  def jobBaseName = readFile 'dockerimgname.jenkins.out'
  echo "${jobBaseName}"
  sh 'ssh -i ~/ssh_keys/key.key user@somehost "cd /dockerdata/build/${BUILD_TAG} && docker build -t localrepo/${jobBaseName}:${BUILD_NUMBER} ."'
}

通常我会假设它没有变量,因为它是远程主机......但是奇怪的是${BUILD_NUMBER},${BUILD_TAG}在远程主机上翻译和工作正常。为什么没有${jobBaseName}??(它在远程主机上显示为空/null)。

jenkins
  • 1 个回答
  • 60917 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve