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

Nathan Basanese's questions

Martin Hope
Nathan Basanese
Asked: 2017-05-27 19:26:06 +0800 CST

如何从 Consul 集群中完全删除节点?

  • 1

这个位于另一个 DC 中的 Consul Server 节点在我删除它后会继续加入。

目标:

DC 中由 5 个 Consul 服务器组成的集群alpha0,其 KV 存储一个alpha0Vault 集群用作存储后端:

  • alpha0consulserver1.alpha0
  • alpha0consulserver2.alpha0
  • alpha0consulserver3.alpha0
  • alpha0consulserver4.alpha0
  • alpha0consulserver5.alpha0

DC 中由 5 个 Consul 服务器组成的集群prd0,其 KV 存储一个prd0Vault 集群用作存储后端:

  • prd0consulserver1.prd0
  • prd0consulserver2.prd0
  • prd0consulserver3.prd0
  • prd0consulserver4.prd0
  • prd0consulserver5.prd0

WAN 连接正常。但我担心如果他们同步他们的 KV 存储,这可能会影响两个单独的 HashiCorp Vault 集群,每个集群都将它们用作后端。

问题:

我编写的一个测试不佳的 Puppet 脚本导致一个 Consul 节点prd0consulserver5连接到另一个 DC 中的另一个节点,alpha0consulserver1.

我已经为 prd0consulserver5 完全清除并重新安装了 Consul,但alpha0consulserver1仍然连接到它。

以下是其中一个配置文件的示例,特别是 alpha0consulserver1.alpha0 的配置文件:

nathan-basanese-zsh8 % sudo cat /etc/consul/config.json
{
    "bind_addr": "192.176.100.1",
    "client_addr": "0.0.0.0",
    "data_dir": "/opt/consul",
    "domain": "consul.basanese.com",
    "bootstrap_expect": 5,
    "enable_syslog": true,
    "log_level": "DEBUG",
    "datacenter": "bts0",
    "node_name": "alpha0consulserver1",
    "ports": {
        "http": 8500,
        "https": 8501
    },
    "recursors": ["192.176.176.240", "192.176.176.241"],
    "server": true,
    "retry_join": ["192.176.100.3", "192.176.100.2", "192.176.100.1"]
}

以下是来自 的一些相关日志prd0consulserver5,但我可以根据要求发布更多信息:

2017/05/26 23:38:00 [DEBUG] memberlist: Stream connection from=192.176.100.1:47239
2017/05/26 23:38:00 [INFO] serf: EventMemberJoin: alpha0consulserver2.alpha0 192.176.100.2
2017/05/26 23:38:00 [INFO] serf: EventMemberJoin: alpha0consulserver1.alpha0 10.240.112.3
2017/05/26 23:38:00 [INFO] consul: Handled member-join event for server "alpha0consulserver2.bts0" in area "wan"
2017/05/26 23:38:00 [INFO] serf: EventMemberJoin: alpha0consulserver3.alpha0 192.176.100.3
2017/05/26 23:38:00 [INFO] consul: Handled member-join event for server "alpha0consulserver1.bts0" in area "wan"
2017/05/26 23:38:00 [INFO] consul: Handled member-join event for server "alpha0consulserver3.bts0" in area "wan"

最终,我得到了这个:

2017/05/26 23:39:02 [DEBUG] memberlist: Initiating push/pull sync with: 192.176.100.2

我关闭了节点,因为我不希望我写入节点上的 KV 存储的密钥alpha0出现在prd0节点上。

到目前为止我已经尝试过:

我尝试了以下方法:

https://www.consul.io/api/agent.html#graceful-leave-and-shutdown

我没有尝试force-leave,因为它在配置的 DC 之外的节点上不起作用。

我还尝试prod0从主机注销所有alpha0主机。

https://www.consul.io/api/catalog.html#deregister-entity

我在我的智慧尽头,在这里,似乎无法找到方法

我在搜索引擎上搜索过它,使用这个查询和许多类似的查询:https ://duckduckgo.com/?q=totally+deregister+consul+node&t=hc&ia=software

以下两个结果似乎有一个稍微相似的问题,但没有什么比将一个由 5 个 Consul 服务器组成的集群与另一个由 5 个 Consul 服务器组成的集群分开那么简单的事情。

https://github.com/hashicorp/consul/issues/1188 https://groups.google.com/forum/#!msg/consul-tool/bvJeP1c3Ujs/EvSZoYiZFgAJ

我认为这可以通过"join_wan":配置设置来处理,但似乎没有办法明确将其关闭。另外,这似乎是解决此问题的一种简单方法。

我也考虑过 IPTables。

反正总觉得少了点什么。我已经开始深入研究 Raft 协议,但我觉得也许我已经开始在我的搜索中切线了。任何指导表示赞赏,无论是评论还是答案。

更准确地说,我如何让prd0Consul 服务器节点拥有自己独立的 KV 存储和 Consul 领导者与alpha0Consul 服务器节点?

cluster
  • 2 个回答
  • 10864 Views
Martin Hope
Nathan Basanese
Asked: 2017-02-24 17:20:26 +0800 CST

为什么 puppet 模块生成一个 Gemfile,它的目的是什么?

  • 4

我最近跑了puppet module generate,结果发现了很多对于一个简单的模块来说看起来没有必要的废话。我的意思是,许多最小的模块相当于模板化一两个配置文件并让开源 Puppet 模块完成繁重的工作。

Puppet 的文档解释了puppet module generate这里的大部分内容:

https://docs.puppet.com/puppet/4.9/modules_fundamentals.html

但是,我没有看到任何关于 Gemfile 的内容。

Gemfile生成的有什么用puppet module generate?

$ puppet module generate nathan-myapp_consul
$ cd myapp_consul/
$ ls
Gemfile     README.md   Rakefile    examples    manifests   metadata.json   spec

以下是该文件的内容:

source ENV['GEM_SOURCE'] || 'https://rubygems.org'

puppetversion = ENV.key?('PUPPET_VERSION') ? ENV['PUPPET_VERSION'] : ['>= 3.3']
gem 'metadata-json-lint'
gem 'puppet', puppetversion
gem 'puppetlabs_spec_helper', '>= 1.0.0'
gem 'puppet-lint', '>= 1.0.0'
gem 'facter', '>= 1.7.0'
gem 'rspec-puppet'

# rspec must be v2 for ruby 1.8.7
if RUBY_VERSION >= '1.8.7' && RUBY_VERSION < '1.9'
  gem 'rspec', '~> 2.0'
  gem 'rake', '~> 10.0'
else
  # rubocop requires ruby >= 1.9
  gem 'rubocop'
end

Gemfile制作人puppet module generate,你有什么意义?

puppet gem
  • 1 个回答
  • 1300 Views
Martin Hope
Nathan Basanese
Asked: 2016-11-19 12:36:58 +0800 CST

PostGreSQL EDB 是否提供节点之间的负载平衡(如 Oracle RAC)?

  • 0

我正在寻找一些关于 PostGreSQL EDB 是否可以像 Oracle RAC 那样提供节点之间的平衡的信息。

AFAIK,它没有。

我能找到的最接近这个主题的问题/答案组合如下:

https://stackoverflow.com/questions/1498793/does-oracle-rac-allow-completely-transparent-failovers-between-nodes

但是,上述链接中的该问题及其答案讨论的是故障转移,而不是负载平衡。

我还在这里查看了电子手册:

http://www.enterprisedb.com/postgres-plus-edb-blog/gary-carter/comparing-edb-postgres-and-oracle

到目前为止,旧互联网和在 serverfault.com 上的搜索并没有给我带来太多快乐。我不断提出关于这两种产品的通用指南或公司传单(没有负载平衡行为的详细示例)。

那么,对于可能使用过 PostGreSQL EDB 的任何人,它是否以类似于 Oracle RAC 的方式提供节点之间的负载平衡?

load-balancing postgresql oracle-rac
  • 1 个回答
  • 770 Views
Martin Hope
Nathan Basanese
Asked: 2016-09-10 17:04:00 +0800 CST

Puppet 2.7 是否允许未参数化的“params”类的类继承?

  • 1

运行时出现以下错误puppet-lint:

$ puppet-lint manifests/*
manifests/init.pp - WARNING: class inheriting from params class on line 72

我在duckduckgo.com上快速搜索了一下,得到了这个:

http://puppet-lint.com/checks/class_inherits_from_params_class/

但是,我们的 Puppet Agent 版本都是 2.7 或更高版本,我们的 Puppet Master 都是 3.0 或更高版本。

作为参考,有init.pp问题的代码如下:

class myclass (
    $zone = 'top',
    $::myclass::params::base_url,
    $::myclass::params::username,
) inherits myclass::params {
...

中的代码params.pp如下:

class myclass::params {
    $base_url  = hiera('myclass::base_url','https://beta.tpsreports.com/coversheets/')
    $username = hiera('clap::base_url','prod')
}

即使 Hiera 查找失败,我仍然不应该收到这样的错误:

err: Could not retrieve catalog from remote server: Error 400 on SERVER: Must pass ::myclass::params::base_url to Class[Myclass] at /etc/puppet/manifests/nodes/beta_servers_0.pp:126 on node beta-web-server-0.tpsreports.com

既然我已经讨论了一些背景,我非常愿意添加,如果有人问,我的问题如下:

  1. 如果params即使 hiera 查找以某种方式失败,我的类也会提供参数,为什么我会收到此错误?
  2. 我是否必须使用可怕的解决方法(即 puppet-lint.com 链接中的“你应该做的事情”,即使我的 Puppet 版本高于2.6.2所有情况?
dependencies puppet hiera
  • 1 个回答
  • 76 Views
Martin Hope
Nathan Basanese
Asked: 2016-06-23 16:05:41 +0800 CST

如何使用 IPTables 关闭某些端口上的所有 _existing_ TCP 连接?

  • 4

假设我有一个想要运行的快速网络分区测试,例如断开 ReDiS 集群的两半,并且我想使用 IPTables 暂时断开一组服务器与另一组的连接。

这与 Fedora 邮件列表中提出的问题非常相似:

https://www.redhat.com/archives/rhl-list/2006-January/msg03380.html

EXISTING,RELATED如果我在 的输出中没有看到iptables --list,我是否需要担心这个?

fedora 邮件列表上的以下答案似乎说是的,如果我EXISTING,RELATED在iptables --list.

https://www.redhat.com/archives/rhl-list/2006-January/msg03396.html

给反身标记者的注释,在那里:这个问题,更重要的是,它的答案,将讨论 IPTables 是否会在更新其规则时丢弃现有连接。

据我所知,本网站上有关此主题的其他问题并未解决现有连接和尝试连接之间的差异:

如何关闭除通过 IPTABLES 列出的所有网络的某些 TCP/UDP 端口(传入)

我在以下 URL 链接的页面上通过 Google 搜索找到了我的大部分研究结果:

https://duckduckgo.com/?q=iptables+close+existing+connections

iptables tcp redis linux-networking
  • 1 个回答
  • 8755 Views
Martin Hope
Nathan Basanese
Asked: 2015-12-15 14:17:34 +0800 CST

我可以更改 Redis 集群中正在运行的 Redis 实例的 MASTERAUTH 值吗?

  • 0

根据http://redis.io/topics/security,我可以在 Redis 配置文件中设置一个requirepass值,例如, 。requirepass foobared

但是,我不希望在我的配置文件中使用它。

基本上,我想将此密码保留在.conf文件之外,并使用redis-cli.

################################## SECURITY ###################################

# Require clients to issue AUTH <PASSWORD> before processing any other
# commands.  This might be useful in environments in which you do not trust
# others with access to the host running redis-server.
#
# This should stay commented out for backward compatibility and because most
# people do not need auth (e.g. they run their own servers).
#
# Warning: since Redis is pretty fast an outside user can try up to
# 150k passwords per second against a good box. This means that you should
# use a very strong password otherwise it will be very easy to break.
#
# 2015.12.14 nbasanes: Although I prefer enabling this, I'm not 
# sure it buys us much, since a clear password in a config 
# file is bad for security:
# requirepass foobared

# 2015.12.14  nbasanes: This could be interesting, although 
#   I don't put much weight in security-by-obscurity:
# Command renaming.
#
# It is possible to change the name of dangerous commands in a shared
# environment. For instance the CONFIG command may be renamed into something
# hard to guess so that it will still be available for internal-use tools
# but not available for general clients.
#
# Example:
#
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
#
# It is also possible to completely kill a command by renaming it into
# an empty string:
#
# rename-command CONFIG ""
#
# Please note that changing the name of commands that are logged into the
# AOF file or transmitted to slaves may cause problems.
security
  • 2 个回答
  • 1905 Views
Martin Hope
Nathan Basanese
Asked: 2015-12-01 13:03:43 +0800 CST

在 Puppet 中,在不同 Puppet 环境中使用不同 Puppet 模块的公认方式是什么?

  • 1

与我一起工作的一些人实际上为每个 Puppet 环境提供了自己的环境$modulepath,但也有共同点$modulepath。

请在下面找到一个示例:

[redis]
        modulepath = /usr/share/puppet/modules:/etc/puppet/modules:/etc/puppet/environments/redis/modules/
        manifest=/etc/puppet/environments/redis/manifests/site.pp

我不确定这是否明智,但我想问,“这样做的正确方法是什么?”

我愿意从 Puppet 的角度以及一般配置管理的角度来回答问题。

它实际上非常具体。如果我需要一个环境的 Redis 模块,另一个环境的 statsd 模块,以及所有这些环境的 Apache 模块,我可以通过设置模块路径来处理这个问题吗?我是不是该?

puppet
  • 1 个回答
  • 78 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