From cb1ca420092c8854592afcf1cc0245b7245358f1 Mon Sep 17 00:00:00 2001 From: Venkateswara Rao Mandela Date: Sat, 1 Sep 2018 19:42:35 +0530 Subject: [PATCH] nixos/doc: add instructions for installation behind a proxy (#45854) The instructions to install nixos behind a proxy were not clear. While one could guess that setting http_proxy variables can get the install rolling, one could end up with an installed system where the proxy settings for the nix-daemon are not configured. This commit updates the documentation with 1. steps to install behind a proxy 2. configure the global proxy settings so that nix-daemon can access internet. 3. Pointers to use nesting.clone in case one has to use different proxy settings on different networks. --- .../installing-behind-a-proxy.xml | 47 +++++++++++++++++++ nixos/doc/manual/installation/installing.xml | 1 + .../installer/tools/nixos-generate-config.pl | 4 ++ nixos/modules/system/activation/top-level.nix | 7 +++ 4 files changed, 59 insertions(+) create mode 100644 nixos/doc/manual/installation/installing-behind-a-proxy.xml mode change 100644 => 100755 nixos/modules/installer/tools/nixos-generate-config.pl diff --git a/nixos/doc/manual/installation/installing-behind-a-proxy.xml b/nixos/doc/manual/installation/installing-behind-a-proxy.xml new file mode 100644 index 000000000000..c59d073c61c7 --- /dev/null +++ b/nixos/doc/manual/installation/installing-behind-a-proxy.xml @@ -0,0 +1,47 @@ +
+ Installing behind a proxy + + + To install NixOS behind a proxy, do the following before running + nixos-install. + + + + + Update proxy configuration in + /mnt/etc/nixos/configuration.nix to keep the + internet accessible after reboot. + + +networking.proxy.default = "http://user:password@proxy:port/"; +networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + + + + + Setup the proxy environment variables in the shell where you are + running nixos-install. + + +# proxy_url="http://user:password@proxy:port/" +# export http_proxy="$proxy_url" +# export HTTP_PROXY="$proxy_url" +# export https_proxy="$proxy_url" +# export HTTPS_PROXY="$proxy_url" + + + + + + + If you are switching networks with different proxy configurations, use the + nesting.clone option in + configuration.nix to switch proxies at runtime. + Refer to for more information. + + +
diff --git a/nixos/doc/manual/installation/installing.xml b/nixos/doc/manual/installation/installing.xml index 6f8e0f613b19..916384559e24 100644 --- a/nixos/doc/manual/installation/installing.xml +++ b/nixos/doc/manual/installation/installing.xml @@ -443,4 +443,5 @@ $ nix-env -i w3m + diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl old mode 100644 new mode 100755 index bb201d97ded1..04678c919c22 --- a/nixos/modules/installer/tools/nixos-generate-config.pl +++ b/nixos/modules/installer/tools/nixos-generate-config.pl @@ -574,6 +574,10 @@ $bootLoaderConfig # networking.hostName = "nixos"; # Define your hostname. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + # Configure network proxy if necessary + # networking.proxy.default = "http://user:password@proxy:port/"; + # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + # Select internationalisation properties. # i18n = { # consoleFont = "Lat2-Terminus16"; diff --git a/nixos/modules/system/activation/top-level.nix b/nixos/modules/system/activation/top-level.nix index 9d410a8b9ca4..fff88e2c2bf3 100644 --- a/nixos/modules/system/activation/top-level.nix +++ b/nixos/modules/system/activation/top-level.nix @@ -162,6 +162,13 @@ in description = '' Additional configurations to build based on the current configuration which then has a lower priority. + + To switch to a cloned configuration (e.g. child-1) + at runtime, run + + + # sudo /run/current-system/fine-tune/child-1/bin/switch-to-configuration test + ''; };