Re: [Nix-dev] How to bootstrap a server using Nixops?

2015-05-01 Thread Jeffrey David Johnson
On Fri, 1 May 2015 08:46:14 +
Rob Vermaas rob.verm...@gmail.com wrote:

 Hi Jeff,
 
 
 On Thu, Apr 30, 2015 at 11:17 PM, Jeffrey David Johnson jef...@gmail.com
 wrote:
 
  It's possible I'm getting the wrong idea about what nixops is for, but I
  used
  it to set up an Amazon EC2 instance with the idea of logging into the
  server
  and administering it using local commands afterward.
 
 
 That's an interesting and unexpected usecase of nixops. I wouldn't use
 nixops at all if you plan on doing this. Why not just start instance in the
 Amazon AWS Console or using the command line tools of AWS? (for ami's see
 https://nixos.org/wiki/NixOS_on_Amazon_EC2)

You're right that looks more like what I wanted! Sorry just didn't see
it before. I'll post my scripts below for clarification but don't worry
about troubleshooting them. I wonder if the NixOps manual should
include a link to that page? Something like If you just want to
install NixOS on the server, see here instead. It's the kind of
distinction, like installing the OS itself to a USB drive vs installing
the LiveCD installer, that seems obvious in hindsight but new
people might miss.

  The initial install goes
  fine. Afterward I clone my nixcfg repo (including nixpkgs submodule) and
  try to
  set it up the way I would a physical machine, by copying everything from
  /etx/nixos/* into nixcfg/configs/cyno.nix and modifying it to
  point inside the repo:
 
  { config, pkgs, ... }:
 
  {
imports = [
  ../nixpkgs/nixos/modules/virtualization/amazon-config.nix
];
ec2.hvm = true;
services.journald.rateLimitBurst = 0;
  }
 
 
  When I do a `nixos-rebuild` (part of install.sh) though, it gives this
  error:
 
  [root@cyno:~/nixcfg]# ./install.sh test
  building Nix...
  error: getting status of
  ‘/root/nixcfg/nixpkgs/nixos/modules/virtualization/amazon-config.nix’: No
  such file or directory
  (use ‘--show-trace’ to show detailed location information)
  error: getting status of
  ‘/root/nixcfg/nixpkgs/nixos/modules/virtualization/amazon-config.nix’: No
  such file or directory
  (use ‘--show-trace’ to show detailed location information)
  building the system configuration...
  error: getting status of
  ‘/root/nixcfg/nixpkgs/nixos/modules/virtualization/amazon-config.nix’: No
  such file or directory
  (use ‘--show-trace’ to show detailed location information)
 
  Now I notice something strange:
  /root/nixcfg/nixpkgs/nixos/modules/virtualization/amazon-config.nix
  exists, but
  `ls` throws an error when listing it:
 
  ls /root/nixcfg/nixpkgs/nixos/modules/virtualization/amazon-config.nix
  ls: cannot access
  /root/nixcfg/nixpkgs/nixos/modules/virtualization/amazon-config.nix: No
  such file or directory
 
  If I approach it slowly by listing /root/nixcfg, then
  /root/nixcfg/nixpkgs,
  all the way to the full path it *does* work. I googled around a little and
  according to this:
 
  http://superuser.com/questions/446280/no-such-file-or-directory
 
  The error can also mean a missing dynamically linked library. So I tried
  ldd as
  directed (though I don't understand the output), and got this:
 
  ldd $(which ls)
  linux-vdso.so.1 (0x7fff01dec000)
  libacl.so.1 =
  /nix/store/6mz0jhl389h7panazs5sayrydajia1s2-acl-2.2.52/lib/libacl.so.1
  (0x7f55d0f54000)
  libc.so.6 =
  /nix/store/93zfs0zzndi7pkjkjxawlafdj8m90kg5-glibc-2.20/lib/libc.so.6
  (0x7f55d0bb7000)
  libattr.so.1 =
  /nix/store/ndszpck395bi55jnz50ny99y4pvj6dqn-attr-2.4.47/lib/libattr.so.1
  (0x7f55d09b3000)
 
  /nix/store/93zfs0zzndi7pkjkjxawlafdj8m90kg5-glibc-2.20/lib/ld-linux-x86-64.so.2
  (0x7f55d115c000)
 
  Anyway I think there's something wrong with how the system is set up, but
  not
  sure what. Is there a correct way to bootstrap it to the point of using
  the same config as my other machines?
 
 
 Can you perhaps show us the contents of install.sh? Can you give us the AMI
 that was used (see AWS Console or commandline tools) ? Also, how did you
 copy the contents of /etc/nixos/* to /root/nixcfg ? I have never seen this
 behavior before, and tested something similar yesterday successfully.

install.sh is just a wrapper to point nixos-rebuild to my repo:

#!/usr/bin/env bash
# Automates rebuilding nixos from my repos.
# Takes the same args as nixos-rebuild.
# TODO also put NIXPKGS_CONFIG in here instead of home dir

NIXCFG=$(cd $(dirname ${BASH_SOURCE[0]})  pwd)
[[ -z $@ ]]  NIXARGS=test --fast || NIXARGS=$@

nixos-rebuild \
  -I mypkgs=${NIXCFG}/mypkgs \
  -I nixpkgs=${NIXCFG}/nixpkgs \
  -I nixos-config=${NIXCFG}/configs/$(hostname).nix \
  ${NIXARGS}

Sorry I should have been clearer about copied, I just meant I wrote
nixcfg/configs/cyno.nix to match what I thought the contents
of /etx/nixos did: import amazon-config.nix and set a couple other
settings. The other files seemed redundant with ones in nixpkgs,
which was the next thing I planned to figure out. I tried importing the
file with this notation too:

Re: [Nix-dev] How to bootstrap a server using Nixops?

2015-05-01 Thread Rob Vermaas
Hi Jeff,


On Thu, Apr 30, 2015 at 11:17 PM, Jeffrey David Johnson jef...@gmail.com
wrote:

 It's possible I'm getting the wrong idea about what nixops is for, but I
 used
 it to set up an Amazon EC2 instance with the idea of logging into the
 server
 and administering it using local commands afterward.


That's an interesting and unexpected usecase of nixops. I wouldn't use
nixops at all if you plan on doing this. Why not just start instance in the
Amazon AWS Console or using the command line tools of AWS? (for ami's see
https://nixos.org/wiki/NixOS_on_Amazon_EC2)


 The initial install goes
 fine. Afterward I clone my nixcfg repo (including nixpkgs submodule) and
 try to
 set it up the way I would a physical machine, by copying everything from
 /etx/nixos/* into nixcfg/configs/cyno.nix and modifying it to
 point inside the repo:

 { config, pkgs, ... }:

 {
   imports = [
 ../nixpkgs/nixos/modules/virtualization/amazon-config.nix
   ];
   ec2.hvm = true;
   services.journald.rateLimitBurst = 0;
 }


 When I do a `nixos-rebuild` (part of install.sh) though, it gives this
 error:

 [root@cyno:~/nixcfg]# ./install.sh test
 building Nix...
 error: getting status of
 ‘/root/nixcfg/nixpkgs/nixos/modules/virtualization/amazon-config.nix’: No
 such file or directory
 (use ‘--show-trace’ to show detailed location information)
 error: getting status of
 ‘/root/nixcfg/nixpkgs/nixos/modules/virtualization/amazon-config.nix’: No
 such file or directory
 (use ‘--show-trace’ to show detailed location information)
 building the system configuration...
 error: getting status of
 ‘/root/nixcfg/nixpkgs/nixos/modules/virtualization/amazon-config.nix’: No
 such file or directory
 (use ‘--show-trace’ to show detailed location information)

 Now I notice something strange:
 /root/nixcfg/nixpkgs/nixos/modules/virtualization/amazon-config.nix
 exists, but
 `ls` throws an error when listing it:

 ls /root/nixcfg/nixpkgs/nixos/modules/virtualization/amazon-config.nix
 ls: cannot access
 /root/nixcfg/nixpkgs/nixos/modules/virtualization/amazon-config.nix: No
 such file or directory

 If I approach it slowly by listing /root/nixcfg, then
 /root/nixcfg/nixpkgs,
 all the way to the full path it *does* work. I googled around a little and
 according to this:

 http://superuser.com/questions/446280/no-such-file-or-directory

 The error can also mean a missing dynamically linked library. So I tried
 ldd as
 directed (though I don't understand the output), and got this:

 ldd $(which ls)
 linux-vdso.so.1 (0x7fff01dec000)
 libacl.so.1 =
 /nix/store/6mz0jhl389h7panazs5sayrydajia1s2-acl-2.2.52/lib/libacl.so.1
 (0x7f55d0f54000)
 libc.so.6 =
 /nix/store/93zfs0zzndi7pkjkjxawlafdj8m90kg5-glibc-2.20/lib/libc.so.6
 (0x7f55d0bb7000)
 libattr.so.1 =
 /nix/store/ndszpck395bi55jnz50ny99y4pvj6dqn-attr-2.4.47/lib/libattr.so.1
 (0x7f55d09b3000)

 /nix/store/93zfs0zzndi7pkjkjxawlafdj8m90kg5-glibc-2.20/lib/ld-linux-x86-64.so.2
 (0x7f55d115c000)

 Anyway I think there's something wrong with how the system is set up, but
 not
 sure what. Is there a correct way to bootstrap it to the point of using
 the same config as my other machines?


Can you perhaps show us the contents of install.sh? Can you give us the AMI
that was used (see AWS Console or commandline tools) ? Also, how did you
copy the contents of /etc/nixos/* to /root/nixcfg ? I have never seen this
behavior before, and tested something similar yesterday successfully.

Cheers,
Rob

-- 
Rob Vermaas

[email] rob.verm...@gmail.com
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


[Nix-dev] How to bootstrap a server using Nixops?

2015-04-30 Thread Jeffrey David Johnson
It's possible I'm getting the wrong idea about what nixops is for, but I used
it to set up an Amazon EC2 instance with the idea of logging into the server
and administering it using local commands afterward. The initial install goes
fine. Afterward I clone my nixcfg repo (including nixpkgs submodule) and try to
set it up the way I would a physical machine, by copying everything from
/etx/nixos/* into nixcfg/configs/cyno.nix and modifying it to
point inside the repo:

{ config, pkgs, ... }:

{
  imports = [
../nixpkgs/nixos/modules/virtualization/amazon-config.nix
  ];
  ec2.hvm = true;
  services.journald.rateLimitBurst = 0;
}


When I do a `nixos-rebuild` (part of install.sh) though, it gives this error:

[root@cyno:~/nixcfg]# ./install.sh test
building Nix...
error: getting status of 
‘/root/nixcfg/nixpkgs/nixos/modules/virtualization/amazon-config.nix’: No such 
file or directory
(use ‘--show-trace’ to show detailed location information)
error: getting status of 
‘/root/nixcfg/nixpkgs/nixos/modules/virtualization/amazon-config.nix’: No such 
file or directory
(use ‘--show-trace’ to show detailed location information)
building the system configuration...
error: getting status of 
‘/root/nixcfg/nixpkgs/nixos/modules/virtualization/amazon-config.nix’: No such 
file or directory
(use ‘--show-trace’ to show detailed location information)

Now I notice something strange:
/root/nixcfg/nixpkgs/nixos/modules/virtualization/amazon-config.nix exists, but
`ls` throws an error when listing it:

ls /root/nixcfg/nixpkgs/nixos/modules/virtualization/amazon-config.nix
ls: cannot access 
/root/nixcfg/nixpkgs/nixos/modules/virtualization/amazon-config.nix: No such 
file or directory

If I approach it slowly by listing /root/nixcfg, then /root/nixcfg/nixpkgs,
all the way to the full path it *does* work. I googled around a little and
according to this:

http://superuser.com/questions/446280/no-such-file-or-directory

The error can also mean a missing dynamically linked library. So I tried ldd as
directed (though I don't understand the output), and got this:

ldd $(which ls)
linux-vdso.so.1 (0x7fff01dec000)
libacl.so.1 = 
/nix/store/6mz0jhl389h7panazs5sayrydajia1s2-acl-2.2.52/lib/libacl.so.1 
(0x7f55d0f54000)
libc.so.6 = 
/nix/store/93zfs0zzndi7pkjkjxawlafdj8m90kg5-glibc-2.20/lib/libc.so.6 
(0x7f55d0bb7000)
libattr.so.1 = 
/nix/store/ndszpck395bi55jnz50ny99y4pvj6dqn-attr-2.4.47/lib/libattr.so.1 
(0x7f55d09b3000)

/nix/store/93zfs0zzndi7pkjkjxawlafdj8m90kg5-glibc-2.20/lib/ld-linux-x86-64.so.2 
(0x7f55d115c000)

Anyway I think there's something wrong with how the system is set up, but not
sure what. Is there a correct way to bootstrap it to the point of using
the same config as my other machines?

Thanks
Jeff
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev