Muehlenhoff has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/372829 )

Change subject: Update docs
......................................................................

Update docs

Change-Id: Iea127a2b6a63fa86b63ca47efe3e4dc23124cde6
---
M docs/readme.txt
1 file changed, 40 insertions(+), 109 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/debs/debdeploy 
refs/changes/29/372829/1

diff --git a/docs/readme.txt b/docs/readme.txt
index 7f4e121..f98eef4 100644
--- a/docs/readme.txt
+++ b/docs/readme.txt
@@ -3,29 +3,29 @@
 -------
 
 debdeploy allows the deployment of software updates in Debian (or Debian-based)
-environments on a large scale. It is based on salt; updates are
-initiated via the debdeploy tool running on the salt master. Servers
-can be grouped into arbitrary sets of servers/services based on Salt grains.
+environments on a large scale. It is based on Cumin; updates are
+initiated via the debdeploy tool running on the Cumin master. Servers
+can be grouped into arbitrary sets of servers/services based on the
+Cumin syntax.
 
 Basic setup
 -----------
 
-Install debdeploy-master on the salt master. Install debdeploy-minion
-on all salt minions. The necessary dependencies will be pulled in.
+Install debdeploy-server on the Cumin master. Install debdeploy-client
+on all clients to be managed. The necessary dependencies will be pulled in.
 
 The Debian packaging installs a basic configuration in
-/etc/debdeploy.conf:
+/etc/debdeploy.conf on the Cumin master:
 
 - You might need to customise the list of supported distros (this also
   allows Debian derivatives like Ubuntu, but they must be Debian/apt
   based).
 
 - Each update file can be used on various server groups. The server
-  groups are defined via Salt grains (one or several). You need to
-  configure a name for each group of grains.
+  groups are defined via the Cumin host syntax.
 
-
-
+- [libraries] maintains a preconfigured list of library base names,
+  which are suggested by generate-debdeploy-spec, see below.
 
 Defining an update
 ------------------
@@ -35,23 +35,30 @@
 These update specs are only specified once and can then be applied to
 the various server groups.
 
+generate-debdeploy-spec guides you through the creation of an update
+spec.
+
 Here's an example for such an update definition:
 
 ----------------
-source: elinks
-comment: CVE-2015-0123
-update_type: tool
+source: openssl
+comment:
+update_type: library
 fixes:
-        jessie: 0.12~pre6-10
-        trusty: 0.12~pre5-8ubuntu2
-        precise:0.12~pre5-3ubuntu1
+        stretch: 1.0
+        jessie: 1.1
+        trusty: 1.2
+libraries:
+      - libssl
+      - libcrypto
 ----------------
 
 debdeploy operates on Debian source packages. The reason is
 that you may have different binary packages installed across your
-fleet. Some systems may e.g. only have php5-common installed, while
+fleet. Some systems may e.g. only have php5-cli installed, while
 others may use several further PHP packages. debdeploy determines the
-installed binary packages per source package and updates them.
+installed binary packages per source package and updates every
+installed binary package.
 
 The "comment" is mostly for informational purposes, it can e.g. denote
 CVE IDs for security vulnerabilities.
@@ -72,48 +79,30 @@
                    system reboot(s) can be managed subsequently.
 library         -> After a library is updated, programs may need to be
                    restarted to fully effect the change. In addition
-                   to librarries, some applications may also fall under this 
rule,
+                   to libraries, some applications may also fall under this 
rule,
                    e.g. when updating QEMU, you might need to restart
                    virtual machines. After installing the update, the
                    service restarts can be managed centrally.
 
-These are planned, but not yet implemented:
-daemon-cluster  -> Clustered daemons, when updating, the invididual
-                   hosts are taken out of the cluster, updated and
-                   finally readded
-reboot-cluster  -> Clustered systems, which are taken out of the
-                   cluster, updated, rebooted and finally re-added
-
-The "fixes" option describes the fixed package per source package. If
+The "fixes" option describes the fixed package version per distro release. If
 a fix doesn't apply to a distribution, it can be left blank.
+
+"libraries" specifies a list of library base names, which are used to
+determine necessary process restarts after a library upgrade. If
+preconfigured in /etc/debdeploy.conf, the library base names are
+proposed when generating an update spec.
 
 
 Deploying an update
 -------------------
 
 First you need to create an update spec as outlined above. Now you
-can deploy the update with the deploy command:
+can deploy the update with the "deploy" command. "testsystem" here
+refers to a host alias definition in Cumin.
 
 debdeploy deploy -u elinks.yaml -s testsystem
 
-The update will run asynchronously via Salt. You can validate the
-status of the deployment via the status-deploy command, e.g.:
-
-debdeploy status-deploy -u elinks.yaml -s testsystem
-
-It will print out a summary like this:
-
-  puppet-jmm-salt-client01.puppet.eqiad.wmflabs:
-    Updated packages:
-      elinks-data: 0.12~pre6-5 -> 0.12~pre6-10
-       elinks: 0.12~pre6-5+b2 -> 0.12~pre6-10 
-  Deployment summary:
-  Number of hosts in this deployment run: 1
-  No packages were added
-  No packages were removed
-  Updated packages:
-  elinks: 0.12~pre6-5+b2 -> 0.12~pre6-10 on 1 hosts
-  elinks-data: 0.12~pre6-5 -> 0.12~pre6-10 on 1 hosts
+The update will run via Cumin.
 
 If anything is awry, you can revert an update using the rollback
 command, e.g.
@@ -122,22 +111,11 @@
 
 Note that in some cases the version to be rolled back might no longer
 be available via apt. In most cases it will still be available in the
-local apt cache of the system. The status of a rollback can be queried
-using the rollback-status command, e.g.
-
-debdeploy status-rollback -u elinks.yaml -s testsystem
-
-If you have an updatespec which applies to more than one group of
-servers (which will usually be the case for generic systems libs
-etc), you can check which server groups haven't had the update
-applied:
-
-debdeploy list-server-groups -u dpkg.yaml
-
-
+local apt cache of the system. 
 
 
 Restart detection / handling
+----------------------------
 
 If you update a tool like, say, Emacs nothing needs to be done in
 addition to deploying the update. However, if you're updating a
@@ -151,33 +129,11 @@
 runtimes, if you are e.g. using daemons written in Java or Python,
 these processes need to be restarted as well.
 
-When deploying an update for such a "library", debdeploy includes
-automatic restart detection. The deploy run returns a list of
-processes which need to be restarted. This may look like this:
+When deploying an update for such a "library", debdeploy provides
+restart detection using the "query_restart" command. It returns a
+list of processes which need to be restarted. This may look like this:
 
 
-----------------------------------------------------------
-$ debdeploy status-deploy -u python.yaml -s testsystem
-
-(..)
-
-Deployment summary:
-Number of hosts in this deployment run: 3
-No packages were added
-No packages were removed
-Updated packages:
-libpython2.7-minimal: 2.7.9-2 -> 2.7.10-3 on 1 hosts
-libpython2.7-stdlib: 2.7.9-2 -> 2.7.10-3 on 1 hosts
-libpython2.7: 2.7.9-2 -> 2.7.10-3 on 1 hosts
-python2.7-minimal: 2.7.9-2 -> 2.7.10-3 on 1 hosts
-python2.7: 2.7.9-2 -> 2.7.10-3 on 1 hosts
-
-Restarts needed:
-/usr/bin/diamond on 1 hosts
-
-Error summary:
-No errors found
-----------------------------------------------------------
 
 
 Restarts are intentionally not made automatically for a number of
@@ -192,31 +148,6 @@
   detectable. E.g. if someone has simply started something in a screen
   session.
   
-
-debdeploy simplifies mass-restarts of services using the "restart"
-command. It also operates on groups of servers using the same set
-of grains. Since there are multiple ways to restart a service in an
-Ubuntu/Debian environment (sysv init scripts, upstart jobs, systemd
-unit files) and the method can vary across supported releases (e.g.
-on wheezy a service may use /etc/init.d/foo and on jessie
-/lib/systemd/unit/foo.service), only the name of the process binary
-is passed. debdeploy automatically detects the service to restart.
-If a service fails to restart, an error is flagged.
-
-Here's an example:
-
------------------
-debdeploy restart -s testsystem -p /usr/sbin/ntpd -p /usr/sbin/lldpd
-Restarting services. Use --verbose to also display non-failing restarts.
-puppet-jmm-salt-client01.puppet.eqiad.wmflabs:
-   /usr/sbin/lldpd sucessfully restarted
-      /usr/sbin/ntpd sucessfully restarted
-      Restart summary:
-
-/usr/sbin/lldpd successfully restarted on 1 out of 1 hosts.
-/usr/sbin/ntpd successfully restarted on 1 out of 1 hosts.
------------------
-
 
 Dealing with legacy binary packages
 -----------------------------------

-- 
To view, visit https://gerrit.wikimedia.org/r/372829
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iea127a2b6a63fa86b63ca47efe3e4dc23124cde6
Gerrit-PatchSet: 1
Gerrit-Project: operations/debs/debdeploy
Gerrit-Branch: master
Gerrit-Owner: Muehlenhoff <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to