问题标签 [nixops]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
974 浏览

nixops - nixops:在具有现有 nixos 的机器上部署时如何使用本地 ssh 密钥(targetEnv 没有)?

我有带有 nixos 的机器(使用 terraform, config 配置),我想使用deployment.targetHost = ipAddress和连接到它deployment.targetEnv = "none"

但我无法将 nixops 配置为使用/secrets/stage_ssh_keyssh 密钥

这不起作用(实际上这没有记录,我在这里找到了它https://github.com/NixOS/nixops/blob/d4e5b779def1fc9e7cf124930d0148e6bd670051/nixops/backends/none.py#L33-L35

nixops ssh stage导致要求输入密码,预期 - 无密码登录

nixops ssh stage -i ./secrets/stage_ssh_key按预期工作,不询问密码

如何重现:

  • 下载回购
  • rm -rf secrets/*
  • 在中添加 aws 键secrets/aws.nix

    { EC2_ACCESS_KEY="XXXX"; EC2_SECRET_KEY="XXXX"; }

  • nix-shell

  • make generate_stage_ssh_key
  • terraform apply
  • make nixops_create
  • nixops deploy询问密码
0 投票
1 回答
364 浏览

nixos - 是否可以(或建议)使用 NixOps 将 NixOS 安装到 USB 闪存驱动器?

我想将 NixOS 安装到闪存驱动器上,并让操作系统完全在闪存驱动器上运行。是否可以使用 NixOps 安装到闪存驱动器?或者我什至需要?也就是说,仅仅编写一个可以做到这一点的脚本会更容易还是更好?

0 投票
1 回答
570 浏览

nixos - 使用 nixops 部署单个 bash 脚本

我刚开始学习nix// nixosnixops我需要在远程主机上安装一个简单的 bash 脚本nixops。我不知道该怎么做。我有两个文件:

  1. just-deploy-bash-script.nix
  1. my-package.nix

我部署如下。我进入这两个文件所在的目录,然后依次执行两个命令:

部署顺利通过并成功完成。但是当我登录到新创建的远程主机时,我发现tmux系统中存在标准集的包,并且my-package不存在:

帮助我弄清楚我的脚本有什么问题。欢迎任何指向此类任务实施的文档或示例的链接。

0 投票
2 回答
844 浏览

linux - NixOps:如何部署到现有的 NixOS VM?

我遇到了与这个问题几乎相同的问题,但从未得到回答:

nixops:在具有现有 nixos 的机器上部署时如何使用本地 ssh 密钥(targetEnv 没有)?

不过,我没有使用 Terraform。只是 NixOS + NixOps。到目前为止,我:

  • 在 Vultr 上创建了一个新的虚拟机
  • 是否从当前的iso(20.09 pre something)安装了标准的NixOS,设置了root密码
  • 使用 root 密码身份验证启用 ssh 并执行了nixos-rebuild switch
  • 在我的笔记本电脑上手动生成一个 ssh 密钥对
  • ssh使用密码编辑到 VM 并将公钥添加到/root/.ssh/authorized_keys

现在我可以按预期使用新密钥手动 ssh 进入 VM:

凉爽的。接下来,我将现有的 NixOS 配置文件复制到我的笔记本电脑并尝试将它们连接到 NixOps。我尝试了一个最小的test1.nix,以及添加下面的deployment."none"和/或users.users.root.openssh部分。

在所有情况下,当我尝试创建和部署网络时,NixOps 会尝试生成另一个 SSH 密钥,然后无法使用它登录:

我错过了什么?也许我可以手动添加刚刚生成的密钥 NixOps?

更新:我使用SQLiteBrowser查看 NixOps 状态数据库并将生成的公钥粘贴到authorized_keys. 现在我可以ssh手动使用新生成的密钥,但 NixOps 仍然无法部署。

0 投票
1 回答
85 浏览

nix - 覆盖 Nix 中的服务定义?

我正在 NixOps 中编写部署定义。作为该定义的一部分,我需要修改由<nixpkgs>.

无法配置服务来做我想做的事。因为服务定义本身定义了一些我需要修改的派生,所以我不能只添加我自己的派生。我能看到的唯一解决方案是覆盖服务定义本身,在修补的副本中出售。

但如果我只是尝试

Nix 抱怨说我正在重新定义所有服务选项。

如果我做

然后对服务定义的更改不会反映在我 services.<myservice>以后的使用中(具体来说,我定义了新选项,但它们不能使用)。

我怎样才能真正告诉 Nix 我想​​要覆盖服务定义,以便我可以在我自己的服务版本中供应商?

动机

提供的 Grafana 服务nixpkgs不完整。您不能提供通知器,并且因为服务定义控制提供,所以您不能手动修改文件系统 - 您必须控制提供的派生

有一个PR 可以解决这个问题,但它需要一段时间才能合并。同时,我想在本地使用 PR 中的版本。