小编gmi*_*ile的帖子

为远程erlang节点运行观察者:使其更简单

我有一个kubernetes集群.

我可以轻松连接到远程容器,并运行连接到live production erlang节点的shell节点:

$ kubectl exec myapp-2431125679-cwqvt -i -t -- iex --name debugging@127.0.0.1 --remsh myliveapp@127.0.0.1 --cookie my_secret_cookie

Erlang/OTP 18 [erts-7.3.1] [source] [64-bit] [smp:2:2] [async-threads:10] [kernel-poll:false]

Interactive Elixir (1.3.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(myliveapp@127.0.0.1)1>
Run Code Online (Sandbox Code Playgroud)

我需要的,虽然是要能够运行:observer针对远程现场制作的Erlang节点.

我也可以这样做:

  1. 杀死本地epmd进程:

    killall epmd
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将选定的远程端口转发到本地计算机:

    kubectl port-forward myapp-2431125679-cwqvt 35609 4369
    
    Run Code Online (Sandbox Code Playgroud)

    我知道我的应用程序在远程容器上的端口35609上epmd运行,默认情况下4369是端口运行,这是我的远程容器的情况.

  3. 跑:

    iex --name debugging@127.0.0.1 --cookie marketplace -e ':observer.start()'
    
    Run Code Online (Sandbox Code Playgroud)
  4. 从顶部菜单中选择我感兴趣的应用程序:observer.

我的问题是:

  1. 这样做可以更简单吗?
  2. 有什么我应该知道的kubernetes,以便能够编写一个连接到远程节点并做我想要的单线程吗?

最终,我可以将此过程变为单行或将其转换为shell脚本吗?

现在杀人 …

erlang elixir kubernetes

9
推荐指数
1
解决办法
793
查看次数

Ruby中有限的矩阵

为什么Matrix类没有方法来编辑它的向量和组件?看起来矩阵内的所有内容都可以读取但不能写入.我错了吗?是否有一些第三方优雅Matrix的类允许我删除行并故意编辑它们?

如果没有这样的课程,请通知我 - 我会停止搜索.

ruby matrix

8
推荐指数
1
解决办法
1671
查看次数

带有RVM的Ruby 1.9.3 IRB中的Unicode字符

更新:我发现几乎完全相似的问题,但它有一些不同的先决条件,因此没有多大帮助.

鉴于:

  • MacOS Lion 10.7.3
  • rvm 1.14.2
  • ruby 1.9.3p194(2012-04-20修订版35410)[x86_64-darwin11.3.0]

    使用以下行安装Ruby:

    rvm install 1.9.3 --with-readline-dir=/usr/local/Cellar/readline/6.2.2/

当我启动irbrails c开始输入unicode字符时,我得到:

\U+FFD0\U+FFBF\U+FFD1\U+FFD0\U+FFB8\U+FFD0\U+FFBC\U+FFD0\U+FFB5\U+FFD1

在Ruby/Rails控制台上键入时如何正确显示unicode字符?

PS在终端的bash会话中键入相同的字符会导致正确的输出.

PPS只是要清楚 - 在控制台中我输入俄语字符:它们被认为是unicode符号吗?

ruby unicode irb rvm osx-lion

8
推荐指数
1
解决办法
2724
查看次数

如何在 Google Cloud 上将 cloud-init 与基于 debian 的映像一起使用?

遵循用于引导实例的terraform最佳实践,我正在处理cloud-init配置以引导我的实例。我唯一的需要是安装一个特定的包。

我的 terraform 配置如下所示:

resource "google_compute_instance" "bastion" {
  name         = "my-first-instance"
  machine_type = "n1-standard-1"
  zone         = "europe-west1-b"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }

  network_interface {
    network = "default"

    access_config {
      // Ephemeral IP
    }
  }

  metadata = {
    ssh-keys = "eugene:${file("/Users/eugene/.ssh/id_rsa.pub")}"
    user-data = file("my_cloud_init.conf")
  }
}
Run Code Online (Sandbox Code Playgroud)

以下是从docs安装软件包的示例cloud-init,这是以下内容my_cloud_init.conf

#cloud-config

packages:
 - kubectl
Run Code Online (Sandbox Code Playgroud)

运行terraform plan -out myplanand 后terraform apply myplan,我 ssh 到节点上却发现kubectl不可用。此外,没有证据表明它cloud-init已运行或存在于节点上: …

cloud-init google-compute-engine google-cloud-platform terraform

8
推荐指数
2
解决办法
3550
查看次数

RSpec:before(:all)和before(:each)之间的深层差异

好的,所以我遇到了一个非常奇怪的问题,直接与之前的块连接.我正在通过Watir和RSpec进行集成测试.对于检查用户是否可以执行登录的简单测试,我通过factory_girl在数据库中创建"用户"记录.

所以我把以下代码:

before(:each) do
  @user = Factory(:user)
end

if "should perform a login" do
  # do stuff
end
Run Code Online (Sandbox Code Playgroud)

do stuff我调用浏览器,看看用户如何尝试登录.不幸的是,他不能这样做 - "用户名无效".

经过一番调查后,我发现如果我把用于创建用户的代码放在before(:all)块中,一切都神奇地起作用.怎么样?在这种情况下:all和之间的区别是什么:each?此外,如果我将用于创建用户的代码实际放在测试体中,它仍然不起作用(即用户不知何故没有添加到数据库或其他东西).

rspec

7
推荐指数
1
解决办法
2234
查看次数

Ruby:构建功能图

在Ruby下构建函数图的最简单方法是什么?有关特殊图形库的任何建议吗?

更新:仅在Windows下:-(

更新2:发现以下gem是目前为止的最佳解决方案https://github.com/clbustos/rubyvis

ruby plot function

6
推荐指数
1
解决办法
5973
查看次数

JQuery UI对话框:应用程序范围的选项

我的应用程序中有大量的jquery-ui对话框.每次我需要一个新的,我写下以下几行:

$('.another-dialog').dialog({
  title: 'Another dialog',
  autoOpen: false,
  draggable: true,
  modal: true,
  show: 'fade',
  hide: 'fade',
  width: 400,
  position: ['center', 'center'],
  buttons: [
    { text: 'Ok' },
    { text: 'Cancel' }
  ],
  open: function(event, ui) { $(".ui-dialog-titlebar-close span").html('×') }
});
Run Code Online (Sandbox Code Playgroud)

一个对话框与另一个对话框之间唯一真正不同的是buttonstitle键.我想在这里有一个JQuery对话框的应用程序范围设置,所以我只会打电话

$('.another-dialog').dialog({
  title: 'Another dialog',
  buttons: [
    { text: 'Ok' },
    { text: 'Cancel' }
  ]
});
Run Code Online (Sandbox Code Playgroud)

隐藏设置所有需要的哈希键(我称之为"默认"设置).

我知道我可以.dialog()打电话,比方说,.myDialog()打电话到我自己设置的地方.但我想知道是否有一种真正,方便的方法.

提前致谢!

jquery jquery-ui jquery-dialog

6
推荐指数
1
解决办法
367
查看次数

如何重命名持久性卷声明?

是否可以重命名PVC?我似乎找不到可能的证据.


我正试图缓解一个"设备没有剩余空间"的问题,我只是偶然发现了.基本上我的计划要求我调整卷的大小,我的服务会保留其数据.

不幸的是,我仍然在GKE上的Kubernetes 1.8.6.它没有PersistentVolumeClaimResize启用准入插件:

因此,我必须手动保存数据.我做了以下计划:

  1. 创造一个新的,更大容量的PVC,
  2. 创建一个临时容器,附加"受害者"pvc和一个新的更大的pvc,
  3. 复制数据,
  4. 丢弃"受害者"PVC,
  5. 重命名新的更大的pvc取代"受害者".

有问题的PVC附加到StatefulSet,因此旧名称和新名称必须匹配(因为StatefulSet期望遵循卷命名约定).

但我不明白如何重命名持久量声明.

persistence rename kubernetes google-kubernetes-engine

6
推荐指数
2
解决办法
2743
查看次数

如何在 Mac OSX 中打开/启用端口,docker swarm 的端口 2377

我正在努力为 docker swarm 连接打开一个端口 2377。

Mac OSX 规范:

System Version: macOS 10.15.2 (19C57)
Kernel Version: Darwin 19.2.0
Run Code Online (Sandbox Code Playgroud)

我尝试打开端口的方法有很多:

  1. 使用 System Preferences->Security and Privacy-> Firewall 启用防火墙。然后编辑/etc/pf.conf如下文件,这根本没有帮助:

    pass in proto tcp from any to any port 2377
    pass in proto tcp from any to any port 8080
    
    Run Code Online (Sandbox Code Playgroud)
  2. 启用和禁用防火墙后,之前启用的端口 8080 被禁用,并且找不到任何方法重新启用它。

  3. ufw 已弃用,似乎不再起作用。

  4. nc -l 8080 (netcat 根本没用,从来没有工作过)。

  5. PFCTL(不工作):

    HQTML git:(AD-14024)$ sudo pfctl -f /etc/pf.conf
    pfctl: Use of -f option, could result in flushing of rules
    present in the main ruleset …
    Run Code Online (Sandbox Code Playgroud)

docker macos-catalina

6
推荐指数
1
解决办法
1140
查看次数

使用 IAM 用户连接到 Cloud SQL

我无法测试在 Google Cloud 的 PostgreSQL 产品中使用 IAM 用户的能力。

这是我的思考过程:

  1. 我在 Google Cloud 上的 PostgreSQL 实例上设置了相应的标志:

    $ gcloud sql instances describe [MY_DB_INSTANCE] --format json | jq '.settings.databaseFlags'
    [
      {
        "name": "cloudsql.iam_authentication",
        "value": "on"
      }
    ]
    $
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我有一个 IAM 用户,我在数据库实例中创建了该用户:

    gcloud sql users create [MY_EMAIL] --instance=[MY_DB_INSTANCE] --type=CLOUD_IAM_USER
    
    Run Code Online (Sandbox Code Playgroud)
    $ gcloud sql users list --instance [MY_DB_INSTANCE] | grep CLOUD_IAM_USER
    [MY_EMAIL]                                      CLOUD_IAM_USER
    $
    
    Run Code Online (Sandbox Code Playgroud)
  3. 当我尝试使用以下任一命令连接到数据库时,出现身份验证错误。在这两种情况下,我都使用输出gcloud auth print-access-token作为我的密码:

    • 此方法将我的 IP 添加到白名单:

      $ gcloud sql connect [MY_DB_INSTANCE] --database=[DB_NAME] --user=[MY_EMAIL]
      Allowlisting your IP for incoming connection for …
      Run Code Online (Sandbox Code Playgroud)

postgresql google-cloud-sql cloud-sql-proxy google-cloud-iam

6
推荐指数
1
解决办法
9197
查看次数