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-38917

vpetersson's questions

Martin Hope
vpetersson
Asked: 2023-06-23 19:00:35 +0800 CST

TeamCity 升级失败,并显示“未持有数据库锁时无法获取独占锁”

  • 6

升级到 TeamCity 2023.05(使用 Docker 映像)时,我收到错误“Can't take Exclusive lock when db lock is notheld”,详细说明如下:


<pre>java.lang.IllegalStateException: Can't take an exclusive lock when db lock is not held
    at jetbrains.buildServer.serverSide.db.Heartbeat.tryGetExclusiveLock(Heartbeat.java:726)
    at jetbrains.buildServer.serverSide.db.TeamCityDatabaseManager.tryGetExclusiveLock(TeamCityDatabaseManager.java:857)
    at jetbrains.buildServer.maintenance.StartupProcessor.lockDatabaseExclusively(StartupProcessor.java:860)
    at jetbrains.buildServer.maintenance.StartupProcessor.doUpgradeRequired(StartupProcessor.java:773)
    at jetbrains.buildServer.maintenance.StartupProcessor.checkUpgradeRequired(StartupProcessor.java:826)
    at jetbrains.buildServer.maintenance.StartupProcessor.doDatabaseChecking(StartupProcessor.java:1377)
    at jetbrains.buildServer.maintenance.StartupProcessor.access$1000(StartupProcessor.java:1410)
    at jetbrains.buildServer.maintenance.StartupProcessor$3.call(StartupProcessor.java:12)
    at jetbrains.buildServer.util.NamedThreadFactory.executeWithNewThreadName(NamedThreadFactory.java:91)
    at jetbrains.buildServer.maintenance.StartupProcessor.processConcreteStage(StartupProcessor.java:779)
    at jetbrains.buildServer.maintenance.StartupProcessor.processConcreteStageSafe(StartupProcessor.java:1165)
    at jetbrains.buildServer.maintenance.StartupProcessor.processTeamCityLifecycle(StartupProcessor.java:1100)
    at jetbrains.buildServer.maintenance.StartupProcessor.access$000(StartupProcessor.java:1120)
    at jetbrains.buildServer.maintenance.StartupProcessor$1.run(StartupProcessor.java:3)
    at java.base/java.lang.Thread.run(Thread.java:833)
</pre>

我花了很多时间试图弄清楚这一点,因为我最初认为实际数据库出了问题,但找不到任何锁。

mysql
  • 1 个回答
  • 17 Views
Martin Hope
vpetersson
Asked: 2016-03-05 07:44:52 +0800 CST

在 Docker 的官方 Wordpress 容器中使用 Let's Encrypt

  • 8

我正在尝试在官方 Docker Wordpress 容器中获取 Let's Encrypt。

设置环境

$ cat docker-compose.yml
wordpress:
  hostname: some.fqdn.com
  image: wordpress
  links:
    - db:mysql
  ports:
    - 80:80
    - 443:443

db:
  image: mariadb
  environment:
    MYSQL_ROOT_PASSWORD: example

$ docker-compose -f docker-compose.yml up -d
$ docker exec -ti root_wordpress_1 bash

安装让我们加密

$ apt-get update && apt-get install -y git-core
[...]
$ cd /usr/local
$ git clone https://github.com/letsencrypt/letsencrypt
[...] 
$ cd letsencrypt/
$ ./letsencrypt-auto --apache
Checking for new version...
Requesting root privileges to run letsencrypt...
   /root/.local/share/letsencrypt/bin/letsencrypt --apache
An unexpected error occurred:
PythonDialogBug
Please see the logfiles in /var/log/letsencrypt for more details.

更多日志

$ cat /var/log/letsencrypt/letsencrypt.log
2016-03-04 15:28:41,551:DEBUG:letsencrypt.cli:Root logging level set at 30
2016-03-04 15:28:41,553:INFO:letsencrypt.cli:Saving debug log to /var/log/letsencrypt/letsencrypt.log
2016-03-04 15:28:41,554:DEBUG:letsencrypt.cli:letsencrypt version: 0.4.2
2016-03-04 15:28:41,554:DEBUG:letsencrypt.cli:Arguments: ['--apache']
2016-03-04 15:28:41,555:DEBUG:letsencrypt.cli:Discovered plugins: PluginsRegistry(PluginEntryPoint#apache,PluginEntryPoint#webroot,PluginEntryPoint#null,PluginEntryPoint#manual,PluginEntryPoint#standalone)
2016-03-04 15:28:41,559:DEBUG:letsencrypt.cli:Requested authenticator apache and installer apache
2016-03-04 15:28:42,166:DEBUG:letsencrypt.display.ops:Single candidate plugin: * apache
Description: Apache Web Server - Alpha
Interfaces: IAuthenticator, IInstaller, IPlugin
Entry point: apache = letsencrypt_apache.configurator:ApacheConfigurator
Initialized: <letsencrypt_apache.configurator.ApacheConfigurator object at 0x7fd05eb85310>
Prep: True
2016-03-04 15:28:42,168:DEBUG:letsencrypt.cli:Selected authenticator <letsencrypt_apache.configurator.ApacheConfigurator object at 0x7fd05eb85310> and installer <letsencrypt_apache.configurator.ApacheConfigurator object at 0x7fd05eb85310>
2016-03-04 15:28:42,178:DEBUG:letsencrypt.cli:Exiting abnormally:
Traceback (most recent call last):
  File "/root/.local/share/letsencrypt/bin/letsencrypt", line 11, in <module>
    sys.exit(main())
  File "/root/.local/share/letsencrypt/local/lib/python2.7/site-packages/letsencrypt/cli.py", line 1993, in main
    return config.func(config, plugins)
  File "/root/.local/share/letsencrypt/local/lib/python2.7/site-packages/letsencrypt/cli.py", line 658, in run
    domains = _find_domains(config, installer)
  File "/root/.local/share/letsencrypt/local/lib/python2.7/site-packages/letsencrypt/cli.py", line 133, in _find_domains
    domains = display_ops.choose_names(installer)
  File "/root/.local/share/letsencrypt/local/lib/python2.7/site-packages/letsencrypt/display/ops.py", line 217, in choose_names
    default=True)
  File "/root/.local/share/letsencrypt/local/lib/python2.7/site-packages/letsencrypt/display/util.py", line 156, in yesno
    yes_label=yes_label, no_label=no_label)
  File "/root/.local/share/letsencrypt/local/lib/python2.7/site-packages/dialog.py", line 3749, in yesno
    kwargs)
  File "/root/.local/share/letsencrypt/local/lib/python2.7/site-packages/dialog.py", line 1765, in _widget_with_no_output
    widget_name, output))
PythonDialogBug

有人在这里有任何线索吗?

我想在官方 Wordpress 图像之上构建一个自动添加 Let's Encrypt 的图像。

wordpress
  • 2 个回答
  • 2443 Views
Martin Hope
vpetersson
Asked: 2014-11-02 05:43:57 +0800 CST

剧本中 Ansible 的默认/错误处理问题

  • 0

我在使用 Ansible 及其默认值的方式时遇到了一些问题。我想要完成的是将 Docker 容器绑定到 eth1(如果存在),否则使用 lo.

我最初的方法是使用默认的未定义变量,如下所示:

shell: docker run -d -p {{ ansible_eth1.ipv4.address | default(127.0.0.1) }}:27017:27017 [...] dockerfile/mongodb

不幸的是,Ansible 抛出了以下错误。

fatal: [server] => One or more undefined variables: 'ansible_eth1' is undefined

我也尝试过这个版本,例如:

shell: docker run -d -p {{ ansible_eth1.ipv4.address | ansible_lo.ipv4.address }}:27017:27017 [...] dockerfile/mongodb

这给了我另一个错误:

failed: [server] => {"changed": true, "cmd": "docker run -d -p {# ansible_eth1.ipv4.address | ansible_lo.ipv4.address #}:27017:27017 [...]", "delta": "0:00:00.021053", "end": "2014-11-01     17:22:04.457375", "rc": 127, "start": "2014-11-01 17:22:04.436322"}
stderr: /bin/sh: 1: ansible_lo.ipv4.address: not found
2014/11/01 17:22:04 Invalid containerPort: {{

接下来,我尝试使用whenand '未定义'条件。它不太干,因为那时我需要两节。

- name: Start Mongo on loopback
  shell: docker run -d -p {{ ansible_lo.ipv4.address }}:27017:27017 [...] dockerfile/mongodb
  when: ansible_eth1.ipv4.address is not defined

这给了我以下错误:

error while evaluating conditional: ansible_eth1.ipv4.address is not defined

有任何 Ansible 专家可以为我指明正确的方向吗?

哦,我正在运行大量 Ansible 1.7.2。

docker
  • 1 个回答
  • 2630 Views
Martin Hope
vpetersson
Asked: 2014-10-28 05:11:07 +0800 CST

Puppet:无法手动生成证书并通过 API 发出证书请求

  • 5

我现在花了太多时间试图弄清楚这一点,我真的需要一个指针。tl;dr 是我需要在一个节点上手动生成证书,然后通过 API 发出证书请求。

根据官方文档,这应该是相当直截了当的。这就是我所做的。

为 myhost.foobar.local 生成证书(来自客户端)

$ puppet cert generate myhost.foobar.local

从证书生成 CSR(来自客户端)

$ openssl req -new -key /var/lib/puppet/ssl/private_keys/myhost.foobar.local.pem -subj "/CN=myhost.foobar.local" -out request.csr

向 Puppet Master 发出证书请求(来自客户端)

该 API 已为远程 API 调用开放,因此我们可以从测试节点进行 API 调用。但是,我只得到一个错误。

$ curl -k -X PUT -H "Content-Type: text/plain" --data-binary @request.csr https://puppetmaster:8140/production/certificate_request/no_key
Could not intern from s: not enough data

其他调用工作得很好,例如:

$ curl -k -H "Accept: pson" https://puppetmaster:8140/production/certificate_statuses/all
[
  {
    "state" : "signed",
    "fingerprints" : {
      "default" : "5A:35:D2:19:59:C6:6E:B8:BE:64:54:FA:14:10:CE:FC:4A:C8:45:F6:DE:8E:7C:E9:2D:B0:5B:E0:5D:93:35:DD",
      "SHA256" : "5A:35:D2:19:59:C6:6E:B8:BE:64:54:FA:14:10:CE:FC:4A:C8:45:F6:DE:8E:7C:E9:2D:B0:5B:E0:5D:93:35:DD",
      "SHA1" : "04:13:AF:B9:CB:44:01:64:24:C9:E0:D6:F4:0D:60:41:52:77:EE:45",
      "SHA512" : "2C:97:11:B9:ED:38:00:1F:B0:7B:75:ED:4C:DB:B1:3E:3D:63:09:C1:38:E2:A3:4F:50:A4:FD:71:FF:55:94:C3:7A:0B:F6:D5:79:09:6D:53:39:B1:EC:C2:BF:DF:CD:9B:67:60:B9:9C:0C:82:51:E9:23:30:AA:33:AC:8B:E9:94"
    },
    "name" : "puppet.foobar.local",
    "dns_alt_names" : [
      "DNS:puppet",
      "DNS:puppet.foobar.local"
    ],
    "fingerprint" : "5A:35:D2:19:59:C6:6E:B8:BE:64:54:FA:14:10:CE:FC:4A:C8:45:F6:DE:8E:7C:E9:2D:B0:5B:E0:5D:93:35:DD"
  },
  {
    "state" : "signed",
    "fingerprints" : {
      "default" : "32:7B:B3:4E:BE:EB:66:21:E5:96:D0:7B:BA:BF:1D:FC:D5:90:E1:6F:52:6B:AB:CF:98:7E:2A:E3:48:00:A2:CF",
      "SHA256" : "32:7B:B3:4E:BE:EB:66:21:E5:96:D0:7B:BA:BF:1D:FC:D5:90:E1:6F:52:6B:AB:CF:98:7E:2A:E3:48:00:A2:CF",
      "SHA1" : "A4:17:D3:05:8A:72:BE:6C:C2:0C:FA:C4:8A:3B:6E:C4:29:90:4B:95",
      "SHA512" : "2D:C3:EE:7E:E3:39:99:C8:21:B8:97:E8:BF:FE:62:26:A8:B8:63:30:C9:F1:77:80:DB:FC:DF:B8:ED:1E:A2:6C:C2:F9:FE:5D:CA:17:D9:08:1E:EB:AA:AF:3D:99:A6:F9:3D:E6:86:A0:B3:3F:E9:EC:1C:7F:25:95:B5:D6:7C:51"
    },
    "name" : "965c252e48c3",
    "dns_alt_names" : [

    ],
    "fingerprint" : "32:7B:B3:4E:BE:EB:66:21:E5:96:D0:7B:BA:BF:1D:FC:D5:90:E1:6F:52:6B:AB:CF:98:7E:2A:E3:48:00:A2:CF"
  }
]

(为便于阅读而格式化)

我不确定我是否在这里遗漏了什么。所有其他 API 调用似乎都可以正常工作,包括节点的签名和删除/撤销。只是证书请求调用似乎失败了。也许我错过了一些明显的东西。

Puppet master 正在运行“3.7.2-1puppetlabs”。

puppet
  • 2 个回答
  • 3273 Views
Martin Hope
vpetersson
Asked: 2013-09-11 17:50:32 +0800 CST

自动调整 VM 磁盘大小

  • 0

我有一个运行良好的 KVM/Qemu 设置。现在我想简化新虚拟机的配置。

两种显而易见的方法是克隆现有磁盘或从头开始安装(使用自动预置/kickstart)。

在我的测试中,使用 preseed/kickstart 进行安装从创建到启动和运行至少需要几分钟(即使使用本地镜像)。结果很好,但时间太长了。

克隆显然要快得多,但是一旦您需要比源更大的磁盘,它就会产生问题。

现在,如果这只是一次性的事情,那么启动它并手动扩展磁盘将是微不足道的。但是,我希望在首次启动时以自动方式执行此操作。

基本上需要执行三个任务:

  • 扩展磁盘(fdisk/cfdisk 等)
  • 调整卷池的大小(在 LVM 的情况下)
  • 展开实际的文件系统

虽然可以编写脚本,但我想在这里提出它,因为我怀疑我是唯一一个希望以自动化方式执行此操作的人。我发现的最接近的东西是用于 Raspberry Pi 的raspi-config,它为此提供了一个自动化工具。

我当然可以从 raspi-config 中提取代码,但它做了很多假设,所以我希望可能有一个更通用的工具可用。

virtualization
  • 2 个回答
  • 93 Views
Martin Hope
vpetersson
Asked: 2013-02-08 11:40:54 +0800 CST

在 Puppet 模板中获取节点列表的最佳方法

  • 1

从 Puppet 模板中获取所有节点列表的推荐方法是什么?

假设我有一个运行 Nginx 的负载均衡器。在模板内部,我想生成一个后端服务器列表。为了简单起见,假设这些应用服务器的主机名与“appserver*”相匹配。

目前,我在每个应用程序服务器的 site.pp 中定义了一个数组,并按如下方式使用它:

upstream www.foobar.com {
  <% appservers.each do |val| -%>
  server <%= val %>:80;
  <% end -%>
}

我想取消那个手动定义的数组,而是查询 Puppet。

puppet
  • 1 个回答
  • 2324 Views
Martin Hope
vpetersson
Asked: 2010-04-15 07:53:41 +0800 CST

使用端口将 Postgres 8.3 升级到 8.4(在 FreeBSD 上)

  • 0

我正在尝试使用 FreeBSD (7.2) 上的端口将 PostgreSQL 8.3 升级到 8.4。我找到了一些很好的指南,例如这个,但它们不起作用。

运行 'portupgrade -o databases/postgresql84-client postgresql-client' 我什么也没得到。甚至没有错误。(我放弃了 -f,因为我已经安装了最新的 8.3 客户端。)

有人愿意提供解决方案吗?

port freebsd postgresql
  • 1 个回答
  • 718 Views
Martin Hope
vpetersson
Asked: 2010-03-27 11:46:58 +0800 CST

FreeBSD 上 Git(通过 SSH)的权限问题

  • 0

我们在 FreeBSD 上遇到了 Git 的权限问题。设置相当简单。我们在同一台服务器上有几个不同的存储库。为简单起见,假设它们位于 /git/repo1 和 /git/repo2 中。

每个 repo 都由用户 'git' 和一个自命名的组(例如 repo1)拥有。该 repo 配置了 g+rwX 访问权限。

每个提交到存储库的用户也是 repo 组的成员(例如 repo1)。

Git 存储库都设置了“sharedRepository = group”。

到目前为止一切顺利,所有用户都可以从存储库中签出代码,并且第一个用户可以毫无问题地提交。但是,当下一个用户尝试提交存储库时,他将收到权限错误。

一段时间以来,我们一直在努力解决这个问题,我们设法解决它的唯一方法是在提交之间运行以下脚本(这显然非常不方便):

查找 /git/repo1 -type d -exec chmod g+s {} \;
chmod -R g+rwX /git/repo1
chown -R git:repo1 /git/repo1/
cd /git/repo1
git gc

有人知道问题出在哪里吗?

ssh permissions freebsd git
  • 2 个回答
  • 1811 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