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

Andy Shinn's questions

Martin Hope
Andy Shinn
Asked: 2014-08-20 12:27:10 +0800 CST

如何启动和停止另一个系统单元?

  • 20

我正在使用 CoreOS 来安排带有车队的 systemd 单元。我有两个单位(firehose.service和firehose-announce.service。我试图让firehose-announce.service开始和停止firehose.service。这是单位文件firehose-announce.service:

[Unit]
Description=Firehose etcd announcer
BindsTo=firehose@%i.service
After=firehose@%i.service
Requires=firehose@%i.service

[Service]
EnvironmentFile=/etc/environment
TimeoutStartSec=30s
ExecStartPre=/bin/sh -c 'sleep 1'
ExecStart=/bin/sh -c "port=$(docker inspect -f '{{range $i, $e := .NetworkSettings.Ports }}{{$p := index $e 0}}{{$p.HostPort}}{{end}}' firehose-%i); echo -n \"Adding socket $COREOS_PRIVATE_IPV4:$port/tcp to /firehose/upstream/firehose-%i\"; while netstat -lnt | grep :$port >/dev/null; do etcdctl set /firehose/upstream/firehose-%i $COREOS_PRIVATE_IPV4:$port --ttl 300 >/dev/null; sleep 200; done"
RestartSec=30s
Restart=on-failure

[X-Fleet]
X-ConditionMachineOf=firehose@%i.service

我正在尝试使用BindsTostart 和 stop offirehose.service也将 start 或 stop的概念firehose-announce.service。但这永远不会正确发生。如果firehose.service停止,则firehose-announce.service进入失败状态。但是当我开始时firehose.service,firehose-announce.service它不会启动。

我在这里做错了什么?

systemd
  • 1 个回答
  • 20872 Views
Martin Hope
Andy Shinn
Asked: 2014-07-17 15:14:38 +0800 CST

增加 AWS RDS 存储的停机时间?

  • 30

我希望增加两个 RDS 实例的存储(只是分配的存储空间,而不是实例类型或其他参数)。https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.ModifyingExisting上的文档建议:

您可以从标准存储更改为预置 IOPS 存储,或从预置 IOPS 更改为标准存储,以及增加存储,几乎没有停机时间。

我肯定会在执行更改之前安排一个维护窗口。但是该领域的文档似乎有些含糊。对于以前可能这样做过的人来说,什么是“几乎没有停机时间”?我可以期待 5 秒还是更像 5 分钟?

2019 年 7 月更新:

我已更新指向正确和更新的 AWS 文档的链接(已损坏)。较新的文档有一个有助于回答原始问题的简介:

在大多数情况下,扩展存储不需要任何中断,也不会降低服务器的性能。修改数据库实例的存储大小后,数据库实例的状态为 Storage-optimization。数据库实例在存储修改后可完全运行。但是,您不能在 6 小时内或当数据库实例状态为存储优化时进行进一步的存储修改,以较长者为准。

但是,一个特殊情况是,如果您有一个 SQL Server 数据库实例,并且自 2017 年 11 月以来没有修改存储配置。在这种情况下,您可能会在修改数据库实例以增加分配的内存时遇到几分钟的短暂中断贮存。中断后,数据库实例处于联机状态,但处于存储优化状态。存储优化期间性能可能会下降。

amazon-web-services
  • 2 个回答
  • 41873 Views
Martin Hope
Andy Shinn
Asked: 2014-06-20 10:00:29 +0800 CST

如何删除丢失的 systemd 单元?

  • 61

我无法弄清楚如何删除不再有文件的 systemd 单元。他们似乎仍然以某种方式徘徊在系统中。

我要删除的旧损坏单元:

core@ip-172-16-32-83 ~ $ systemctl list-units --all firehose-router*
  UNIT                       LOAD      ACTIVE SUB    DESCRIPTION
<E2><97><8F> [email protected] not-found failed failed [email protected]
<E2><97><8F> [email protected] not-found failed failed [email protected]

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

2 loaded units listed.
To show all installed unit files use 'systemctl list-unit-files'.

这些文件不存在,但重新加载仍然有这些单位挥之不去:

core@ip-172-16-32-83 ~ $ systemctl list-unit-files [email protected]
core@ip-172-16-32-83 ~ $ sudo systemctl daemon-reload
core@ip-172-16-32-83 ~ $ systemctl list-units --all firehose-router*
  UNIT                       LOAD      ACTIVE SUB    DESCRIPTION
<E2><97><8F> [email protected] not-found failed failed [email protected]
<E2><97><8F> [email protected] not-found failed failed [email protected]

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

2 loaded units listed.
To show all installed unit files use 'systemctl list-unit-files'.

我找不到与它们相关的文件:

core@ip-172-16-32-83 ~ $ sudo find /var/run/systemd -name "*firehose-router*"
core@ip-172-16-32-83 ~ $ find /etc/systemd/ -name "*firehose-router*"
core@ip-172-16-32-83 ~ $ find /usr/lib/systemd/ -name "*firehose-router*"
core@ip-172-16-32-83 ~ $

那么我该如何摆脱这些呢?

systemd
  • 4 个回答
  • 48947 Views
Martin Hope
Andy Shinn
Asked: 2014-06-11 13:46:09 +0800 CST

如何在 CoreOS cloud-init 中设置 sysctl 变量?

  • 4

我正在寻找一种sysctl在其cloud-init阶段设置 CoreOS 设置的方法。

CoreOS 版本cloud-init仅允许少数配置指令,与常规的cloud-init. 例如,没有runcmd部分(请参阅http://coreos.com/docs/cluster-management/setup/cloudinit-cloud-config/)。

systemd提供了一种sysctl通过文件管理设置的方法(http://www.freedesktop.org/software/systemd/man/sysctl.d.html)。我正在使用 CoreOScloud-init write_files部分在/etc/sysctl.d/50-nf_conntrack.conf. 但它不会被拾取,因为 CoreOS 云配置是在sysctl.d配置已经发生之后发生的。

也许我可以以某种方式使用另一个systemd单元文件来重新启动sysctl.d单元?这怎么可能实现?

cloud-init
  • 3 个回答
  • 6235 Views
Martin Hope
Andy Shinn
Asked: 2013-05-22 09:42:51 +0800 CST

在 Vagrant VM 中导入 Puppet 预生成的 SSL 密钥对的好方法?

  • 3

我想将 Vagrant 设置为使用我当前的 Puppet master 作为供应商。但我不喜欢在.box文件中嵌入 SSL 密钥对的想法。

我目前正在做的是使用 Vagrant 文件为 Puppet 代理分发 ca.pem、公共、私有和证书密钥文件,并使用此 shell 脚本引导 Puppet 代理:

$puppet_ssl = <<SCRIPT
sudo mkdir -p /var/lib/puppet/ssl/{certs,private_keys,public_keys}
sudo chown puppet /var/lib/puppet/ssl/{certs,private_keys,public_keys}
sudo cp /vagrant/puppet/certs/appdev.mydomain.com.pem /vagrant/puppet/certs/ca.pem /var/lib/puppet/ssl/certs/
sudo cp /vagrant/puppet/private_keys/appdev.mydomain.com.pem /var/lib/puppet/ssl/private_keys/
sudo cp /vagrant/puppet/public_keys/appdev.mydomain.com.pem /var/lib/puppet/ssl/public_keys/
SCRIPT

如果开发人员拥有文件并且一切都在正确的目录中,这似乎工作正常。

我的问题:有没有更好的方法来分发需要预加载到 Vagrant VM 上的任意文件而不将它们嵌入到.box文件中?

puppet
  • 1 个回答
  • 726 Views
Martin Hope
Andy Shinn
Asked: 2013-01-30 10:30:23 +0800 CST

将 iBGP 学习路由重新分配到所有路由器?

  • 0

我正在尝试解决LB1(运行 Quagga 的 Linux 机器)和PAT1(PAT2Juniper MX80 路由器)之间的链路故障。下图是我的网络布局的规范版本:

BGP 网状图

BGP设置:

  • PAT1并且PAT2每个都有一个 eBGP 会话与ISP1和ISP2宣布199.192.100.0/24。
  • LB1199.192.100.0/28通过 iBGP 会话向PAT1和宣布PAT2
  • PAT1并PAT2在彼此之间建立 iBGP 会话以重新分配外部学习路由(以便在 ISP 链路出现故障时任一路由器都可以返回互联网)
  • PAT1并PAT2创建一条默认路由以LB1返回到 Internet
  • 互联网流量目前正在过来ISP2

当我切断 和 之间的链接时PAT2,LB1流量会停止,PAT2因为PAT1没有通告到 的备份路径199.192.100.0/28。我的印象是PAT1会重新分配199.192.100.0/28路由,PAT2以便在发生故障时可以使用它。但似乎这不是 iBGP 设计的工作方式。

什么是克服 iBGP 不通告学习到的 iBGP 路由的限制的好方法?

routing
  • 1 个回答
  • 1427 Views
Martin Hope
Andy Shinn
Asked: 2013-01-22 20:30:03 +0800 CST

Quagga 路由器的 Juniper OSPF 子网不匹配

  • 0

我正在尝试在 Juniper MX80 和 Quagga 路由器之间设置一个 OSPF 区域。Quagga 路由器配置了 OSPF,并在 hello 数据包中通告了网络 199.192.100.0/28。但 Juniper MX80 拒绝它并出现以下错误:

1 月 22 日 04:14:38.371296 OSPF 数据包被忽略:intf ae0.0 区域 0.0.0.0 上来自 199.192.100.2 的子网不匹配
Jan 22 04:14:38.371515 OSPF rcvd Hello 199.192.100.2 -> 224.0.0.5 (ae0.0 IFL 336 area 0.0.0.0)
Jan 22 04:14:38.371538 版本 2,长度 44,ID 10.10.90.4,区域 0.0.0.0
1 月 22 日 04:14:38.371559 校验和 0x0,authtype 0
Jan 22 04:14:38.371581 mask 255.255.255.240, hello_ivl 10, opts 0x2, prio 1
1 月 22 日 04:14:38.371602 dead_ivl 40,DR 199.192.100.2,BDR 0.0.0.0

配置的相关部分是:

瞻博网络 MX80:

ashinn@mx2# 显示接口 ae0
聚合以太选项{
    拉普{
        积极的;
    }
}
单元 0 {
    家庭互联网{
        地址 199.192.100.253/30;
    }
}

ashinn@mx2# 显示协议 ospf   
导出重新分配连接;
面积 0.0.0.0 {
    区域范围 199.192.100.0/28;
    接口 xe-0/0/1.0;
    界面 ae0.0 {
        接口型p2p;
    }
}

Interface ae0.0是面向Quagga路由器bond0接口的接口:

!
接口绑定0
 ip ospf 成本 50
 ipv6 nd 抑制-ra
!
路由器 ospf
 日志邻接更改
 重新分配内核
 重新分配连接
 网络 199.192.100.0/28 区域 0.0.0.0
 邻居 199.192.100.253
!

以及 bond0 的 Quagga 接口:

[ashinn@lb2 ~]$ ip addr show dev bond0
8: bond0: mtu 1500 qdisc noqueue 状态 UP
    链接/以太 00:25:90:27:8a:be brd ff:ff:ff:ff:ff:ff
    inet 199.192.100.254/30 brd 199.192.100.255 范围 global bond0
    inet 199.192.100.2/28 范围 global bond0
    inet6 fe80::225:90ff:fe27:8abe/64 作用域链接
       valid_lft 永远 preferred_lft 永远

我试过在没有neighbor statementQuagga 的情况下也试过ip ospf network point-to-point在 Quagga 中设置。两者似乎都没有任何区别。

我发现这篇文章http://kb.juniper.net/InfoCenter/index?page=content&id=KB23533&cat=T1600_1&actp=LIST&showDraft=false似乎解释了同样的问题。但它只建议纠正子网掩码不匹配。这种不匹配可能在哪里?如果它与 /30 点对点接口子网冲突,那么为什么?

juniper
  • 3 个回答
  • 2705 Views
Martin Hope
Andy Shinn
Asked: 2012-12-13 11:19:34 +0800 CST

如何从静态 NAT NETMAP 中排除多个目的地?

  • 1

我在 iptables 中有一个静态 1:1 NAT 设置,它排除了一个较大的子网(这样 NETMAP 主机仍然可以到达其他非静态 NAT 的本地主机),如下所示:

*nat
-A PREROUTING --destination 128.128.196.32/27 -j NETMAP --to 10.10.20.32/27
-A POSTROUTING --source 10.10.20.32/27 ! -d 10.0.0.0/8 -j NETMAP --to 128.128.196.32/27

我还想排除面向公众的 IP 地址,以便静态 NAT 主机仍然可以访问机器上另一个静态 NAT 主机的公共 IP 地址。但是似乎不支持多个否定目的地。这会引发错误:

*nat
-A PREROUTING --destination 128.128.196.32/27 -j NETMAP --to 10.10.20.32/27
-A POSTROUTING --source 10.10.20.32/27 ! -d 10.0.0.0/8 ! -d 128.128.196.0/24 -j NETMAP --to 128.128.196.32/27

我如何设置 iptables 以允许静态 NAT NETMAPed 主机到达 iptables 机器上的其他公共地址?

iptables
  • 1 个回答
  • 11378 Views
Martin Hope
Andy Shinn
Asked: 2012-11-15 11:10:40 +0800 CST

Puppet apache 模块导致“服务器上出现错误 400:参数标识符无效”

  • 3

我在尝试使用来自 github ( https://github.com/puppetlabs/puppetlabs-apache ) 的最新 puppetlabs-apache 模块时收到以下错误:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Invalid parameter identifier at /etc/puppet/environments/development/modules/apache/manifests/mod.pp:40 on node cacti.mydomain.com Warning: Not using cache on failed catalog Error: Could not retrieve catalog; skipping runn

我的节点配置如下所示:

节点 'cacti.eye.fi' 继承 'base' {
  包括阿帕奇
  包括 mysql::server
  包括 yumrepos::epel

  包{'仙人掌':
    确保 => '最新',
  }
}

mod.pp 内容:

定义 apache::mod (
  $包=未定义
) {
  $mod = $名称
  包括阿帕奇::参数
  #include apache #This 在 rspec-puppet 中创建重复资源
  $mod_packages = $apache::params::mod_packages
  $mod_package = $mod_packages[$mod] # 2.6 兼容性破解
  如果 $ 包 {
    $package_REAL = $包
  } elsif "$mod_package" {
    $package_REAL = $mod_package
  }
  $mod_libs = $apache::params::mod_libs
  $mod_lib = $mod_libs[$mod] # 2.6 兼容性破解
  如果“${mod_lib}”{
    $lib = $mod_lib
  }

  $mod_identifiers = $apache::params::mod_identifiers
  $mod_identifier = $mod_identifiers[$mod]
  如果“${mod_identifier}”{
    $identifier = $mod_identifier
  }

  如果 $package_REAL {
    包 { $package_REAL:
      确保 => 现在,
      要求 => 包 ['httpd'],
      之前 => A2mod[$mod],
    }
  }

  a2mod { $mod:
    确保 => 现在,
    库 => $库,
    标识符 => $标识符,
    要求 => 包 ['httpd'],
    通知 => 服务 ['httpd'],
  }
}

我已验证该/var/lib/puppet/lib/puppet/type/a2mod.rb类型具有标识符参数并且它与服务器的 MD5 相同:

Puppet::Type.newtype(:a2mod) 做
    @doc = "管理 Apache 2 模块"

ensurable

newparam :name do
   desc "The name of the module to be managed"

   isnamevar

end

newparam :lib do
  desc "The name of the .so library to be loaded"

  defaultto { "mod_#{@resource[:name]}.so" }
end

newparam :identifier do
  desc "Module identifier string used by LoadModule. Default: module-name_module"

  # http://httpd.apache.org/docs/2.2/mod/module-dict.html#ModuleIdentifier

  defaultto { "#{@resource[:name]}_module" }
end

autorequire(:package) { catalog.resource(:package, 'httpd')}

结尾

我在代理和主机上都使用 Puppet 3.0.2。知道是什么原因造成的吗?

puppet
  • 2 个回答
  • 3465 Views
Martin Hope
Andy Shinn
Asked: 2012-10-02 16:20:53 +0800 CST

乘客在 Puppet 3.0.0 升级后为“master”抛出未定义的方法`-@':String

  • 2

我的 Puppet master 使用 Passenger 来服务。升级到 Puppet 3.0.0 后出现以下错误:

[ pid=17576 thr=70231398486460 file=utils.rb:176 time=2012-10-01 17:37:12.892 ]: *** PhusionPassenger::Rack::ApplicationSpawner 中的异常 NoMethodError(未定义的方法`-@' 用于“ master":String)(进程 17576,线程 #):
        来自 config.ru:7
        来自 /usr/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/builder.rb:51:in `instance_eval'
        来自 /usr/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/builder.rb:51:in `initialize'
        来自 config.ru:1:in `new'
        来自 config.ru:1

我的config.ru如下:

# a config.ru, for use with every rack-compatible webserver.
# SSL needs to be handled outside this, though.

# if puppet is not in your RUBYLIB:
# $LOAD_PATH.unshift('/opt/puppet/lib')

$0 = "master"

# if you want debugging:
# ARGV << "--debug"

ARGV << "--rack"

# Rack applications typically don't start as root.  Set --confdir to prevent
# reading configuration from ~/.puppet/puppet.conf
ARGV << "--confdir" << "/etc/puppet"

# NOTE: it's unfortunate that we have to use the "CommandLine" class
#  here to launch the app, but it contains some initialization logic
#  (such as triggering the parsing of the config file) that is very
#  important.  We should do something less nasty here when we've
#  gotten our API and settings initialization logic cleaned up.
#
# Also note that the "$0 = master" line up near the top here is
#  the magic that allows the CommandLine class to know that it's
#  supposed to be running master.
#
# --cprice 2012-05-22

require 'puppet/util/command_line'
# we're usually running inside a Rack::Builder.new {} block,
# therefore we need to call run *here*.
run Puppet::Util::CommandLine.new.execute

知道会发生什么吗?

puppet
  • 1 个回答
  • 348 Views
Martin Hope
Andy Shinn
Asked: 2012-10-02 11:20:33 +0800 CST

Puppet 3.0.0 错误:无法在 [:main, :agent, :ssl] 部分创建用于管理 Puppet 文件和目录的资源

  • 1

从 Puppet Labs YUM 存储库将节点升级到 Puppet 3.0.0 后,升级的节点会抛出一个 munging 错误:

[ashinn@dis1 ~]$ sudo puppet agent --test --trace
错误:无法在 [:main, :agent, :ssl] 部分创建用于管理 Puppet 文件和目录的资源:文件 [/var/lib/puppet/state/graphs] 上的参数路径失败:Munging failed for value "/var /lib/puppet/state/graphs" 在类路径中:未初始化常量 Puppet::FileCollection
/usr/lib/ruby/gems/1.8/gems/puppet-2.7.19/lib/puppet/type/file.rb:62:in munge'unsafe_munge'
/usr/lib/ruby/site_ruby/1.8/puppet/parameter.rb:209:in
/usr/lib/ruby/site_ruby/1.8/puppet/parameter.rb:252:in []='value='
/usr/lib/ruby/site_ruby/1.8/puppet/type.rb:414:in
/usr/lib/ruby/site_ruby/1.8/puppet/type.rb:1660:in initialize'set_name'
/usr/lib/ruby/site_ruby/1.8/puppet/type.rb:1647:in
/usr/lib/ruby/gems/1.8/gems/puppet-2.7.19/lib/puppet/type/file.rb:434:in new'initialize'
/usr/lib/ruby/site_ruby/1.8/puppet/resource.rb:290:in
/usr/lib/ruby/site_ruby/1.8/puppet/resource.rb:290:in发送'to_ral'
/usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:570:in
/usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:570:in each'to_catalog'
/usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:551:in
/usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:551:in to_ral'to_catalog'
/usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:475:in
/usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:891:in synchronize'use'
/usr/lib/ruby/1.8/sync.rb:230:in
/usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:885:in setup'use'
/usr/lib/ruby/site_ruby/1.8/puppet/application/agent.rb:450:in
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:344:in plugin_hook'run'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:438:in
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:344:in exit_on_fail'run'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:500:in
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:344:in execute'run'
/usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:76:in
/usr/bin/傀儡:10
错误:无法准备执行:无法在 [:main, :agent, :ssl] 部分创建用于管理 Puppet 文件和目录的资源:文件 [/var/lib/puppet/state/graphs] 上的参数路径失败:Munging类路径中的值“/var/lib/puppet/state/graphs”失败:未初始化的常量 Puppet::FileCollection
文件 [/var/lib/puppet/state/graphs] 上的参数路径失败:类路径中的值“/var/lib/puppet/state/graphs”的 Munging 失败:未初始化的常量 Puppet::FileCollection
/usr/lib/ruby/gems/1.8/gems/puppet-2.7.19/lib/puppet/type/file.rb:62:in munge'unsafe_munge'
/usr/lib/ruby/site_ruby/1.8/puppet/parameter.rb:209:in
/usr/lib/ruby/site_ruby/1.8/puppet/parameter.rb:252:in []='value='
/usr/lib/ruby/site_ruby/1.8/puppet/type.rb:414:in
/usr/lib/ruby/site_ruby/1.8/puppet/type.rb:1660:in initialize'set_name'
/usr/lib/ruby/site_ruby/1.8/puppet/type.rb:1647:in
/usr/lib/ruby/gems/1.8/gems/puppet-2.7.19/lib/puppet/type/file.rb:434:in new'initialize'
/usr/lib/ruby/site_ruby/1.8/puppet/resource.rb:290:in
/usr/lib/ruby/site_ruby/1.8/puppet/resource.rb:290:in发送'to_ral'
/usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:570:in
/usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:570:in each'to_catalog'
/usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:551:in
/usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:551:in to_ral'to_catalog'
/usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:475:in
/usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:891:in synchronize'use'
/usr/lib/ruby/1.8/sync.rb:230:in
/usr/lib/ruby/site_ruby/1.8/puppet/settings.rb:885:in setup'use'
/usr/lib/ruby/site_ruby/1.8/puppet/application/agent.rb:450:in
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:344:in plugin_hook'run'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:438:in
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:344:in exit_on_fail'run'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:500:in
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:344:in execute'run'
/usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:76:in
/usr/bin/傀儡:10

我注意到/var/lib/puppet/state/graphs每次尝试时报告的文件(在此错误中)都会更改。它似乎总是 /var/lib/puppet 中的一个随机文件。知道这里会发生什么吗?

puppet
  • 1 个回答
  • 1523 Views
Martin Hope
Andy Shinn
Asked: 2012-09-26 08:02:49 +0800 CST

定义类型的无效参数

  • 1

我有一个定义的类型modules/sysctl/manifests/init.pp,看起来像:

定义 sysctl($value = undef,$ensure = undef){

  # 父清除目录
  包括 sysctl::base

  # 永久改变
  文件 { "/etc/sysctl.d/${title}.conf":
    所有者 => '根',
    组 => '根',
    模式 => '0644',
    内容 => "${title} = ${value}\n",
    确保 => $确保,
    notify => Exec["sysctl-${title}"],
  }

  # 立即改变
  exec { "sysctl-${title}":
    命令 => "/sbin/sysctl -w ${title}=${value}",
    refreshonly => 真,
  }
}

modules/template/manifests/api.pp在由我使用的节点继承的模板模块中:

类模板:: API {

  包括 yumrepos::epel
  包括模板::常见
  包括我的防火墙

  防火墙
  防火墙

  类 { '::我的模块' :
    require => Class['yumrepos::epel'],
  }

  类 { '::resolv' :
    local_resolver => 真,
  }

  sysctl { 'net.netfilter.nf_conntrack_max':
    值 => '1048576',
    确保 => '文件',
  }
  sysctl { 'net.nf_conntrack_max' : value => 1048576 }
  系统控制{
    'net.netfilter.nf_conntrack_tcp_timeout_established':
      值 => 86400
  }
  sysctl { 'net.ipv4.tcp_tw_recycle' : value => '0' }
  sysctl { 'net.ipv4.tcp_tw_reuse' : value => '1' }
  sysctl { 'net.ipv4.tcp_fin_timeout' : value => '10' }
  sysctl { 'net.ipv4.ip_local_port_range' : value => '10000 65535' }
  sysctl { 'kernel.msgmni' : value => '1024' }
  sysctl { 'kernel.sem' : value => '250 256000 32 1024' }

}

但是我err: Could not retrieve catalog from remote server: Error 400 on SERVER: Invalid parameter value at /etc/puppet/modules/template/manifests/api.pp:28 on node dis1.mydomain.com在节点上遇到错误。第 28 行包含 sysctl 定义的结尾}。

我也试过将类型称为 sysctl::sysctl,并将定义的类型包装在一个类中,并将名称更改为 set,然后将其称为 sysctl::set。他们仍然没有工作。如果我尝试include sysctl我得到一个类不存在的错误。

我在这里做错了什么?

puppet
  • 1 个回答
  • 4377 Views
Martin Hope
Andy Shinn
Asked: 2012-09-11 20:35:06 +0800 CST

如何在子类中重新定义参数?

  • 2

我正在尝试将人偶模块 ( https://github.com/puppetlabs/puppetlabs-puppet/blob/master/manifests/init.pp ) 包含在我自己的通用模板模块中。但只master => true为我的主节点设置。但我收到此错误:

err: Could not retrieve catalog from remote server: Error 400 on SERVER: Only subclasses can override parameters at /etc/puppet/modules/template/manifests/puppetmaster.pp:5 on node puppet1.mydomain.com

我的常用模板如下所示:

类模板::常见{
  包括 ssh
  包括用户::基础设施
  包括用户::系统
  包括包::共同
  班级 {
    “木偶”:
      puppet_server => 'puppet.mydomain.com',
  }
}

这包含在我的所有节点(包括我的 puppetmaster)中,其中还包含此模板:

类模板::puppetmaster 继承木偶{
  包括 mysql::server
  包括 myfirewall::defaults
  类[‘傀儡’] { master +> true }

我希望能够让我的人偶大师安装主位和代理(已经继承)。但我宁愿不必为每个节点定义人偶资源,这样我就可以为我的人偶大师拥有一个单独的同一类资源。

解决这个问题的好方法是什么?

puppet
  • 1 个回答
  • 2032 Views
Martin Hope
Andy Shinn
Asked: 2012-09-06 18:12:11 +0800 CST

Puppet 安装多个包导致 Package[undef] 错误

  • 2

尝试一次安装多个包时,我在 Puppet 代理上收到以下错误:

err: /Stage[main]/Template::Infrastructure/Package[undef]/ensure: change from absent to present failed: Execution of '/usr/bin/yum -d 0 -e 0 -y install undef' returned 1: Error: Nothing to do

产生错误的代码是:

$packages = [ 'qemu-kvm', 'qemu-kvm-tools', 'drbd84-tools', 'kmod-drbd84' ]
包裹 {
  $::包:
    确保 => '已安装',
    require => Class['yumrepos::elrepo']
}

问题是间歇性的。有没有更好的方法可以一次安装多个包而不必为每个包设置包资源?

puppet
  • 1 个回答
  • 3769 Views
Martin Hope
Andy Shinn
Asked: 2012-07-10 11:24:37 +0800 CST

在 Puppet 模板中使用 $server?

  • 1

我正在尝试将 Puppet 服务器用作我的人偶模板中的变量,如下所示<%= $settings::server %>:但我得到一个错误:

undefined method `server' for nil:NilClass

如何将配置的 Puppet 服务器用作模板中的变量?

puppet
  • 2 个回答
  • 321 Views
Martin Hope
Andy Shinn
Asked: 2012-06-17 12:08:26 +0800 CST

即使启用了所有错误报告,PHP 仍显示空白页面

  • 1

我正在尝试调试 Drupal 应用程序中的损坏页面,并且很难让 PHP 吐出任何有用的东西。我有以下设置:

error_reporting = E_ALL
display_errors = On
display_startup_errors = On
log_errors = On
error_log = /var/log/php/php_error.log

我有一个显示 phpinfo() 的文件,它确认这些变量已针对环境正确设置。我已将 memory_limit 增加到 256M(这应该绰绰有余)。然而,我得到的唯一指示是 apache 访问日志中的状态 500 代码和来自 PHP 的空白页面。

Apache 虚拟主机将 LogLevel 设置为调试,错误日志仅输出:

[Sat Jun 16 20:03:03 2012] [debug] mod_deflate.c(615): [client 173.8.175.217] Zlib: Compressed 0 to 2 : URL /index.php, referer: http://ec2-174-129-192-237.compute-1.amazonaws.com/admin/reports/updates
[Sat Jun 16 20:03:03 2012] [error] [client 173.8.175.217] File does not exist: /var/www/favicon.ico
[Sat Jun 16 20:03:03 2012] [debug] mod_deflate.c(615): [client 173.8.175.217] Zlib: Compressed 42 to 44 : URL /favicon.ico

PHP 错误日志根本不输出任何内容。内核和系统日志显示与 Apache 或 PHP 无关。我还尝试安装 suphp 并检查其日志以确认用户正在正确执行:

[Sat Jun 16 20:02:59 2012] [info] Executing "/var/www/index.php" as UID 1000, GID 1000
[Sat Jun 16 20:05:03 2012] [info] Executing "/var/www/index.php" as UID 1000, GID 1000

这是在具有以下 PHP 模块的 Ubuntu 12.04 x86_64 上:

ii  php5                             5.3.10-1ubuntu3.1          server-side, HTML-embedded scripting language (metapackage)
ii  php5-cgi                         5.3.10-1ubuntu3.1          server-side, HTML-embedded scripting language (CGI binary)
ii  php5-cli                         5.3.10-1ubuntu3.1          command-line interpreter for the php5 scripting language
ii  php5-common                      5.3.10-1ubuntu3.1          Common files for packages built from the php5 source
ii  php5-curl                        5.3.10-1ubuntu3.1          CURL module for php5
ii  php5-gd                          5.3.10-1ubuntu3.1          GD module for php5
ii  php5-mysql                       5.3.10-1ubuntu3.1          MySQL module for php5

那么,我在这里错过了什么?为什么没有报错?

ubuntu php apache-2.2 drupal 500-error
  • 1 个回答
  • 8277 Views
Martin Hope
Andy Shinn
Asked: 2012-06-16 09:52:21 +0800 CST

如何防止多个 eBGP 路由器的不对称路由?

  • 6

我有 2 个路由器向不同的提供商宣布 /22 子网(一个提供商连接到 2 个路由器中的每一个)。我已将 /22 分成两个 /23,以在每个路由器上宣布一个 /23 加上 /22(提供商将采用更具体的路由)。这允许我进行故障转移并保持 /23 内的流量进出同一提供商。

还有哪些其他方法可以让我仅通过两个路由器宣布 /22 并让来自路由器后面网络上服务器的数据包返回它们来自的同一路由器?

编辑:

我遇到的主要问题(最终用户和客户抱怨最多的问题)是最少跳路由有时不是“最佳”路由。就我而言,我知道提供商 B 可能对 X 国家有更好的延迟。但是当数据包从提供商 B 进来时,它们可能会从提供商 A 或提供商 B 出去。反之亦然。如果我从提供者 A 向 X 国家发送数据包,即使它可能有更多的返回跳数,数据包也可能来自提供者 B(对于这个国家可能有更高的延迟、数据包丢失等)

routing bgp quagga ip-routing
  • 3 个回答
  • 16424 Views
Martin Hope
Andy Shinn
Asked: 2012-05-08 14:45:51 +0800 CST

相当于 Cisco 发现协议 (CDP) 的 Linux 服务器?

  • 3

我想知道是否有任何 Linux 工具可以帮助识别直接相互连接的主机(很像交换机上的思科发现协议)?

我找到了正在搜索的http://sourceforge.net/projects/lcdpd/。但它似乎是一个死项目,补丁仅适用于旧内核。

我只是想减轻以太网接口到 ARP MAC 地址到主机名查找的繁琐任务。一个额外的好处是它也宣布了它自己的邻居,这样你就可以看到网络其余部分的 2 跳视图。

linux ethernet cdp linux-networking
  • 1 个回答
  • 7936 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