Answers: <p>AFAIK Kickstart is only usable for the initial installation of the OS, but not for subsequent package maintenance upgrades/downgrades.</p>
  
  <p>Unless I miss something (quite possible, I don't have much experience w/ them) the Linux distros managed by configuration management tools require a minimum level of health from the OS (and some package requirements, at least in some cases) to be able to operate those tools, say to perform a rollback. At least NixOS appears to not have such requirement (or rather it is already fullfilled at the OS level). From <a href="https://nixos.org/nixos/about.html" rel="noreferrer">About NixOS</a>:</p>
  
  <blockquote>
    <p>Rollbacks</p>
    
    <p>Because the files of a new configuration don’t overwrite old ones, you
    can (atomically) roll back to a previous configuration. For instance,
    if after a nixos-rebuild switch you discover that you don’t like the
    new configuration, you can just go back:</p>
  
  <pre><code>$ nixos-rebuild switch --rollback
  </code></pre>
    
    <p>In fact, all old system configurations automatically show up in the
    <a href="https://nixos.org/nixos/screenshots/nixos-grub.png" rel="noreferrer">Grub boot menu</a>. So if the new configuration crashes or doesn’t
    boot properly, you can just roll back by selecting an older
    configuration in the Grub boot menu. Rollbacks are very fast: it
    doesn’t involve lots of files having to be restored from copies.</p>
  </blockquote>
  
Answers: CC BY-SA 3.0
Answers: 2017-08-14T17:27:30.807Z
Answers: 2017-08-14T17:27:30.807Z
Answers: Dan Cornilescu
Answers: <p><strong>Pros:</strong></p>
  
  <ol>
  <li>No configuration management tools like puppet, chef, salt or ansible needed</li>
  </ol>
  
  <p><strong>Cons:</strong></p>
  
  <ol>
  <li><strong>Dependent:</strong> If one has written a lot of <a href="https://nixos.org/nixops/" rel="nofollow noreferrer">NixOps</a> files and one decides to go to another provider then one has to rewrite all the provision scripts, while a tool like terraform is cloud agnostic</li>
  <li>No autoscaling like docker</li>
  <li>Promotion of silos, e.g. <code>DevOps friendly</code>. In my opinion dev should release software as well. Now one could just use docker that they use in development as well.</li>
  </ol>
  
Answers: CC BY-SA 3.0
Answers: 2017-08-17T11:44:50.060Z
Answers: You do not need configuration management tools with kickstart. I am building AMI using Puppet and then final configuration is simple sh script.
Answers: Hauleth
Answers: CC BY-SA 3.0
Answers: 2017-08-14T17:05:13.597Z
Answers: 2017-08-14T17:05:13.597Z
Answers: 030
Body: <p><a href="https://devops.stackexchange.com/questions/1749/are-nixos-and-guixsd-the-incoming-linux-distros-of-devops">NixOS and GuixSD both bill themselves as "declarative" and DevOps-friendly.</a> How and in what ways are these declarative distros different than Kickstart and/or a Linux distro managed by a configuration management tool?</p>
  
  <p>What advantages and/or disadvantages are there to this style of declarative linux configuration as opposed to these currently existing technologies?</p>
  
Tags: <configuration-management>
Title: How are declarative distros different than Kickstart?
UserDisplayName: James Shewey
ThreadText: # How are declarative distros different than Kickstart?
  
  (Asked by: username_0 on 2017-08-14)
  
  [NixOS and GuixSD both bill themselves as "declarative" and DevOps-friendly.](https://devops.stackexchange.com/questions/1749/are-nixos-and-guixsd-the-incoming-linux-distros-of-devops) How and in what ways are these declarative distros different than Kickstart and/or a Linux distro managed by a configuration management tool?
  
  What advantages and/or disadvantages are there to this style of declarative linux configuration as opposed to these currently existing technologies?
  
  **Tags:** configuration-management
  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_1 on 2017-08-14. Score: 5
  
  AFAIK Kickstart is only usable for the initial installation of the OS, but not for subsequent package maintenance upgrades/downgrades.
  
  Unless I miss something (quite possible, I don't have much experience w/ them) the Linux distros managed by configuration management tools require a minimum level of health from the OS (and some package requirements, at least in some cases) to be able to operate those tools, say to perform a rollback. At least NixOS appears to not have such requirement (or rather it is already fullfilled at the OS level). From [About NixOS](https://nixos.org/nixos/about.html):
  
  > Rollbacks
  >
  > Because the files of a new configuration don’t overwrite old ones, you
  > can (atomically) roll back to a previous configuration. For instance,
  > if after a nixos-rebuild switch you discover that you don’t like the
  > new configuration, you can just go back:
  >
  > ```
  > $ nixos-rebuild switch --rollback
  >
  > ```
  >
  > In fact, all old system configurations automatically show up in the
  > [Grub boot menu](https://nixos.org/nixos/screenshots/nixos-grub.png). So if the new configuration crashes or doesn’t
  > boot properly, you can just roll back by selecting an older
  > configuration in the Grub boot menu. Rollbacks are very fast: it
  > doesn’t involve lots of files having to be restored from copies.
  
  
  ---
  
  ### Answer by username_2 on 2017-08-14. Score: 3
  
  **Pros:**
  
  1. No configuration management tools like puppet, chef, salt or ansible needed
  
  **Cons:**
  
  1. **Dependent:** If one has written a lot of [NixOps](https://nixos.org/nixops/) files and one decides to go to another provider then one has to rewrite all the provision scripts, while a tool like terraform is cloud agnostic
  2. No autoscaling like docker
  3. Promotion of silos, e.g. `DevOps friendly`. In my opinion dev should release software as well. Now one could just use docker that they use in development as well.
  
  > **Comments:**
  > **username_3**: You do not need configuration management tools with kickstart. I am building AMI using Puppet and then final configuration is simple sh script.  
  
  ---
  
  