1. 01 Dec, 2014 1 commit
    • Dimitris Aragiorgis's avatar
      deploy: Networking fixes · da63a421
      Dimitris Aragiorgis authored
      Introduce /etc/network/interfaces.synnefo that will setup bridges
      used for VMs' public and private networks.
      
      Instead of using a common bridge use two separate bridges (br0,
      prv0). Their default ports are defined in nodes.conf
      (vm_public_iface, vm_private_iface) which are by default dummy. In a
      single node setup we don't need those interfaces. In case of router
      node, br0 will get the gateway IP.
      
      Use ferm for persistent network configuration. Add masq.ferm that
      is responsible for masquerading on router node and MAC SNAT on all
      nodes (needed in case we have a MAC filtered setup on
      vm_public_iface).
      
      Use rc.local to losetup extra disk and ifup bridges.
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      da63a421
  2. 06 Nov, 2014 2 commits
    • Dimitris Aragiorgis's avatar
      deploy: Add vnc role · b461bf9f
      Dimitris Aragiorgis authored
      snf-vncauthproxy can now run on a separate node.
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      b461bf9f
    • Dimitris Aragiorgis's avatar
      deploy: Add CA component and ca role · e4d531a9
      Dimitris Aragiorgis authored
      The ca role will be a separate node able to create and sign
      certificates. All components that need a certificate will get it
      from this node. Since we are going to have one common certificate
      for the synnefo.live CN including all DNS alternatives (astakos,
      cyclades, vnc, etc.) this certificate will be created in advance and
      everyone will get it during setup.
      
      The cacert.pem will be added to the firefox db via certutil -A.
      
      snf-vncauthproxy will use the corresponding cert.pem and key.pem.
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      e4d531a9
  3. 22 Sep, 2014 1 commit
  4. 15 Sep, 2014 1 commit
  5. 08 Sep, 2014 1 commit
  6. 01 Sep, 2014 1 commit
  7. 08 Jul, 2014 1 commit
  8. 02 Jun, 2014 1 commit
    • Dimitris Aragiorgis's avatar
      deploy: Add missing cyclades options for ext · c1282636
      Dimitris Aragiorgis authored
      The ext disk template needs some extra parameters that are defined
      in cyclades settings. Add those missing settings.
      
      Additionally remove any hardcoded references to /srv/ganeti since this
      is configurable.
      
      Change mails found in cyclades.conf to examples (e.g
      user@synnefo.org).
      
      Add shared-filer ext provider too (by installing ExtStorage
      component too).
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      c1282636
  9. 30 May, 2014 7 commits
    • Dimitris Aragiorgis's avatar
      deploy/ci: Some changes wrt disk sizes · fb83c76c
      Dimitris Aragiorgis authored
      vcluster.conf:
      
        disk0_size is the size of base vcluster image to debootstrap
        disk1_size if the size of the extra disk to use for LVM
      
      ganeti.conf:
      
        vg_size is the size of the VG to create if an extra disk is not
      found
      
      Ganeti has a hard requirement for VG more than 20480MB.
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      fb83c76c
    • Dimitris Aragiorgis's avatar
      deploy: Support Ganeti 2.10 · c7a5e2d7
      Dimitris Aragiorgis authored
      ..and later but NOT 2.8.
      
      In Ganeti 2.10 --no-lvm-storage and --no-drbd-storage options of
      gnt-cluster init are removed in favor of --enabled-disk-templates.
      
      Additionally the packaging has changed. A valid ganeti installation
      has: ganeti-haskell-2.10, ganeti-htools-2.10, ganeti-2.10,
      snf-ganeti, ganeti2.
      
      Since snf-ganeti (or ganeti) depends on all other we remove
      ganeti-haskell and ganeti-htools from the REQUIRED_PACKAGES of
      the Ganeti component. ganeti2 is a dummy transitional package that
      satisfies external components dependencies (snf-image,
      snf-cyclades-gtools, etc.)
      
      The version to be installed is configurable in packages.conf.
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      c7a5e2d7
    • Dimitris Aragiorgis's avatar
      deploy/ci: Remove dummy password in nodes.conf · 60b0b681
      Dimitris Aragiorgis authored
      Since snf-deploy image does passwd -d root the nodes will have
      empty password.
      
      Set UsePAM no and PermitEmptyPasswords yes in sshd_config in
      vcluster image.
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      60b0b681
    • Dimitris Aragiorgis's avatar
    • Dimitris Aragiorgis's avatar
      deploy/ci: Add dummy node · 8b69ad56
      Dimitris Aragiorgis authored
      Remove all roles from DEFAULT section in setups.conf. This way each
      setup has only the roles/nodes that are included in the corresponding
      section. Since currently the Context() class expects to find all
      roles in each setup (db, mq, etc.) we have to introduce a dummy node
      that eventually should not be used.
      
      Set DEFAULT_NODE and DEFAULT_CLUSTER to None. One should only
      specify the desired setup (with --setup option) and the nodes, and
      clusters should be derived from it.
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      8b69ad56
    • Dimitris Aragiorgis's avatar
      deploy/ci: Change conf files for easy setup · 9eb64f50
      Dimitris Aragiorgis authored
      Update conf files to support three basic setups:
      
       synnefo: Used by ci in order to install the whole stack in one node
      with --autoconf
      
       qa: Three node setup with one development node and two ganeti nodes
      
       vc: Four node setup to test synnefo deployment on multinode virtual
      cluster
      
      So, we now have:
      
       snf-deploy synnefo --setup synnefo --autoconf
      
       snf-deploy ganeti-qa --setup qa
      
       snf-deploy vcluster --setup vc
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      9eb64f50
    • Dimitris Aragiorgis's avatar
      deploy/ci: Make vcluster use debootstrap · 4eff1b4a
      Dimitris Aragiorgis authored
      Introduce a new helper script, mkimage.sh that creates a debian base
      raw image with debootstrap so that it can be used in a virtual
      cluster.
      
      Install network-manager and a hook to update hostname with info
      provided by DHCP responce.
      
      Add new conf setting for the size of the image.
      
      Create another empty image as well so that the VM can use it for
      LVM.
      
      Remove unused settings.
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      4eff1b4a
  10. 20 May, 2014 9 commits
  11. 12 May, 2014 1 commit
  12. 02 May, 2014 5 commits
  13. 31 Mar, 2014 5 commits
  14. 12 Mar, 2014 1 commit
    • Dimitris Aragiorgis's avatar
      deploy: Add state dir and use it for status · 19fa4790
      Dimitris Aragiorgis authored
      Introduce new setting in [dirs] section of deploy.conf: `state`.
      Override this setting with `--state-dir` option (useful when running
      deploy from source).
      
      This dir is currently used to store snf-deploy's `snf_deploy_status`
      file, that shows which components on which nodes have been
      installed. Do not update this file if `--dry-run` is used.
      
      Additionally introduce `--templates-dir` option that overrides
      `template` setting in [dirs] section of `deploy.conf`.
      
      Note that override options do not modify the configuration files.
      Changes are performed in the execution context of each snf-deploy
      command.
      
      To run snf-deploy from source use:
      
      $ python setup.py develop
      $ snf-deploy keygen -c conf -t files -s /tmp
      $ snf-deploy all --autoconf -c conf -t files -s /tmp
      
      Add the above setting to snf-ci's schema files.
      
      Update Copyright dates.
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      19fa4790
  15. 09 Jan, 2014 1 commit
  16. 08 Jan, 2014 1 commit
    • Dimitris Aragiorgis's avatar
      Huuuuge snf-deploy refactor · df284363
      Dimitris Aragiorgis authored
      Introduce the concept of Roles and Components.
      
      Roles are ns, mq, db, nfs, astakos, cyclades, pithos, cms, stats,
      ganeti, master, and client.
      
      Each role consists of various SynnefoComponents which  should define:
      
      * commands to check installation prerequisites (check)
      * packages to install (REQUIRED_PACKAGES)
      * commands to prepare installation (prepare)
      * configuration templates (configure)
      * reload commands (restart)
      * initialization commands (initialize)
      * test commands (test)
      
      SynnefoComponents are unaware of fabric environment. They
      get initialized with a Host object and a Env object.
      
      Host includes all the necessary info for the installation node
      (ip, hostname, alias, fqdn..) and Env includes all the configuration info
      (created after parsing config files)
      
      After defining components, fabfile should just do the following:
      
      @roles("somerole")
      def setup_somerole_role():
        SetupSynnefoRole("SomeRole")
      
      In case you want to run a component's specific method just run
      
      RunComponentMethod(SomeComponent, "method_name", *args, **kwargs)
      
      During a role setup you might have to retrieve info from other
      components already installed (user token, backend id, etc.) Use
      'execute' fabric method and fill env object with required info.
      
      Make deployment re-entrant.
      
      Check if specific component is already installed and if yes then skip it.
      
      Currently this is done on node/component level. The component's
      status on a target node is either ok or nothing.
      
      Introduce conflicting components.
      
      Two components might not be able/or should not coexist in the same
      node, e.g. NFS and Mount. These conflicts are defined in CONFLICTS
      dict in roles.py.
      
      Sync ci and deploy conf files.
      
      ci: Change node's password in nodes.conf
      
      Always enable CSRF. Install CMS only if it resides on different
      node than pithos, cyclades and astakos.
      
      Add copyright headers.
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      df284363
  17. 17 Dec, 2013 1 commit