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
    • 最新
    • 标签
主页 / server / 问题 / 955649
Accepted
UncleBob
UncleBob
Asked: 2019-02-26 07:54:45 +0800 CST2019-02-26 07:54:45 +0800 CST 2019-02-26 07:54:45 +0800 CST

puppet 不再能够在 ubuntu 18 上管理服务

  • 772

我试图通过我们的 puppet-master 设置一个新服务器。这应该是一件快速的事情,那里的所有东西都运行得相当可靠,并且仍然在旧服务器上。

只是新服务器是第一台运行 Ubuntu 18 的服务器,而 puppet 似乎无法启动这些服务。这是我在尝试确保服务正在运行时遇到的错误示例:

Error: /Stage[main]/Influxdb/Service[influxdb]/ensure: change from stopped to running failed: Could not find init script for 'influxdb'

在调试输出中,我可以看到以下内容:

Executing: '/usr/sbin/service influxdb status'
Service[influxdb](provider=debian): Could not find influxdb in /etc/init.d
Service[influxdb](provider=debian): Could not find influxdb.sh in /etc/init.d

实际上 /etc/init.d 中没有与服务相关的文件,但以前从未需要过。如果我sudo /usr/sbin/service influxdb status从控制台运行,则该命令有效。那么为什么 puppet agent 无法准确管理服务呢?

请注意,我不是 100% 确定问题出在 ubuntu 18 上。这只是我能想到的唯一重要的变化,显然 Ubuntu 18 中的 systemd 发生了一些变化,尽管我还不太清楚他们到底是什么。我想要的是一种不需要我重写所有服务文件的解决方案,并且有一个可以在仍然运行旧操作系统的服务器以及运行新操作系统的服务器上运行的 puppet 设置。任何人都可以帮助我实现这一目标吗?

puppet
  • 2 2 个回答
  • 696 Views

2 个回答

  • Voted
  1. Itai Ganot
    2019-02-26T08:07:26+08:002019-02-26T08:07:26+08:00

    如果我遇到了这个问题,我会采取以下步骤:

    1. 我会采用 influxdb 的 init.sh 脚本,默认情况下可以在你的 influxdb 服务器的路径中找到/usr/lib/influxdb/scripts/init.sh它并将其复制到/etc/init.d/influxdb.

    2. 使脚本可执行: chmod u+x /etc/init.d/influxdb

    3. 再次运行 Puppet。

    如果您找不到该初始化脚本,那么我已将其上传到 pastebin.com,这是链接(我从运行版本 1.6.4 的服务器中获取): https ://pastebin.com/fkHRGfZH

    如果您希望服务在引导时启动,请运行:

    update-rc.d influxdb defaults
    

    它会将您创建的文件复制/etc/init.d/influxdb到您指定的每个运行级别。

    • 2
  2. Best Answer
    bodgit
    2019-03-02T06:32:02+08:002019-03-02T06:32:02+08:00

    所以造成这种情况的原因是在太新的操作系统上使用了太旧的 Puppet 版本。Puppet 4.10.12(OP 正在使用)不知道 Ubuntu 18.04 以及它使用 systemd 作为所选初始化系统的事实。那个版本的 Puppet 中的启发式方法基本上知道 systemd 用于 Ubuntu 版本从 15.04 到 17.10(含)。在正式添加对 Ubuntu 18.04 支持的 Puppet 版本 5.3.6 中,该版本被添加到已知使用 systemd 的版本列表中。在 Puppet 的更高版本中,逻辑被翻转为在 Ubuntu 的每个版本上都使用 systemd,除了10.04 到 14.10 版本,这应该会在下一个 Ubuntu 版本出现时让事情变得更容易。

    • 2

相关问题

  • 如何修复 Puppet 完全限定的参数路径错误?

  • puppet:修改配置文件后强制重启服务

  • 木偶模块资源

  • 傀儡主机名问题

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