问题标签 [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.
nixops - nixops:在具有现有 nixos 的机器上部署时如何使用本地 ssh 密钥(targetEnv 没有)?
我有带有 nixos 的机器(使用 terraform, config 配置),我想使用deployment.targetHost = ipAddress
和连接到它deployment.targetEnv = "none"
但我无法将 nixops 配置为使用/secrets/stage_ssh_key
ssh 密钥
这不起作用(实际上这没有记录,我在这里找到了它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
询问密码
nixos - 是否可以(或建议)使用 NixOps 将 NixOS 安装到 USB 闪存驱动器?
我想将 NixOS 安装到闪存驱动器上,并让操作系统完全在闪存驱动器上运行。是否可以使用 NixOps 安装到闪存驱动器?或者我什至需要?也就是说,仅仅编写一个可以做到这一点的脚本会更容易还是更好?
nixos - 使用 nixops 部署单个 bash 脚本
我刚开始学习nix
// nixos
。nixops
我需要在远程主机上安装一个简单的 bash 脚本nixops
。我不知道该怎么做。我有两个文件:
just-deploy-bash-script.nix
my-package.nix
我部署如下。我进入这两个文件所在的目录,然后依次执行两个命令:
部署顺利通过并成功完成。但是当我登录到新创建的远程主机时,我发现tmux
系统中存在标准集的包,并且my-package
不存在:
帮助我弄清楚我的脚本有什么问题。欢迎任何指向此类任务实施的文档或示例的链接。
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 仍然无法部署。
nix - 覆盖 Nix 中的服务定义?
我正在 NixOps 中编写部署定义。作为该定义的一部分,我需要修改由<nixpkgs>
.
我无法配置服务来做我想做的事。因为服务定义本身定义了一些我需要修改的派生,所以我不能只添加我自己的派生。我能看到的唯一解决方案是覆盖服务定义本身,在修补的副本中出售。
但如果我只是尝试
Nix 抱怨说我正在重新定义所有服务选项。
如果我做
然后对服务定义的更改不会反映在我
services.<myservice>
以后的使用中(具体来说,我定义了新选项,但它们不能使用)。
我怎样才能真正告诉 Nix 我想要覆盖服务定义,以便我可以在我自己的服务版本中供应商?
动机
提供的 Grafana 服务nixpkgs
不完整。您不能提供通知器,并且因为服务定义控制提供,所以您不能手动修改文件系统 - 您必须控制提供的派生。
有一个PR 可以解决这个问题,但它需要一段时间才能合并。同时,我想在本地使用 PR 中的版本。