1. 06 Nov, 2014 1 commit
    • 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
  2. 01 Sep, 2014 1 commit
  3. 02 Jun, 2014 1 commit
  4. 30 May, 2014 3 commits
  5. 20 May, 2014 1 commit
    • Dimitris Aragiorgis's avatar
      deploy: Fix context issues in fabfile · a3dc8e7e
      Dimitris Aragiorgis authored
      Ensure that the context that each component is setup with, is
      the correct one and does not include stale entries.
      
      Use fabric's execute() method with hosts argument the proper
      target nodes derived from current context. Introduce three
      new decorators for this purpose:
      
       - with_ctx gets the current context
       - with_node updates the context's node with env.host
       - with_cluster updates the context's cluster with env.host
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      a3dc8e7e
  6. 02 May, 2014 4 commits
    • Dimitris Aragiorgis's avatar
      deploy: Refactor fabfile · ac8113ce
      Dimitris Aragiorgis authored
      The fabfile is now responsible to find the target nodes for each
      execution context. It practically gets the corresponding component
      for each role and invokes its setup() method.
      
      To get the execution context for each action we use fabric's execute()
      and update the context based on env.host.
      
      Some things can be done concurrently (setup of each VMC node).
      To do so, we use the fabric's @parallel decorator.
      
      Additionally we support setup of a single component/role on a target
      node or even the execution of a single method of a component.
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      ac8113ce
    • Dimitris Aragiorgis's avatar
      deploy: Add ganeti-qa command · 9093eb07
      Dimitris Aragiorgis authored
      To install a minimal Ganeti cluster for QA run:
      
       snf-deploy ganeti-qa
      
      This will create a ganeti cluster. The test instances will resolve on
      the local nameserver. On the client node it clones the official repo
      and installs all required packages required for ganeti development.
      A sample qa json file is uploaded under /tmp.
      
      To run the qa go to the client node and run:
      
       # cd ganeti
       # python ganeti-qa.py /tmp/qa-sample.json --yes-do-it
      
      Note that the installed version in the qa cluster should be the same
      used in the qa source.
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      9093eb07
    • Dimitris Aragiorgis's avatar
      deploy/ci: Setup lvm in case extra disk exists · 79707d0e
      Dimitris Aragiorgis authored
      Ganeti needs a VG in order to support plain/drbd disk templates.
      In case an extra disk exists, deploy will create a PV and a VG
      on this disk.
      
      Use options `extra_disk` in nodes.conf and `vg` in ganeti.conf for
      this purpose.
      
      VMs spawned currently during ci do not have extra disks. Update the
      corresponding schema.
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      79707d0e
    • Dimitris Aragiorgis's avatar
      deploy: Extract synnefo's components from ganeti · de81d118
      Dimitris Aragiorgis authored
      The components PithosBackend, Image, GTools, and GanetiCollectd
      are related to Ganeti but used only by Synnefo.
      
      Define new role, named 'snf-ganeti' to include those components and use
      it with the `snf-deploy ganeti` command.
      
      Install ganeti-instance-debootstrap so that we have a working os
      provider.
      
      snf-image takes a lot of time to be configured (curl,
      snf-image-update-helper, wget debian-base image) and is not needed
      for a simple Ganeti cluster (i.e. QA cluster).
      
      Move wget of debian base image to Image component and not nfs.
      In order not to download many times check if it already exists
      in the proper path.
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      de81d118
  7. 14 Apr, 2014 1 commit
    • Vangelis Koukis's avatar
      Switch license to GPLv3 · 02071b96
      Vangelis Koukis authored
      According to the decision of the GRNET Board of Directors,
      switch license to GPLv3.
      
      This commit will be propagated to the release
      and master branches based on git flow, and the next
      release will be licensed as GPLv3.
      02071b96
  8. 12 Mar, 2014 1 commit
  9. 13 Feb, 2014 1 commit
  10. 29 Jan, 2014 2 commits
    • Dimitris Aragiorgis's avatar
      deploy: workaround for java console Issue · dfaf89a8
      Dimitris Aragiorgis authored
      Java VncViewer class has an issue with self-signed certificates.
      With existing deployment it does not work if UI_MEDIA_URL uses
      FQDN. Use the node's IP instead.
      
      NOTE: In a linux (Debian) client add the following in
      .java/deployment/deployment.properties:
      
      deployment.security.level=MEDIUM
      
      which will prompt to allow execution of the applet.
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      dfaf89a8
    • Dimitris Aragiorgis's avatar
      deploy: workaround for java console Issue · 89cbb020
      Dimitris Aragiorgis authored
      Java VncViewer class has an issue with self-signed certificates.
      With existing deployment it does not work if UI_MEDIA_URL uses
      FQDN. Use the node's IP instead.
      
      NOTE: In a linux (Debian) client add the following in
      .java/deployment/deployment.properties:
      
      deployment.security.level=MEDIUM
      
      which will prompt to allow execution of the applet.
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      89cbb020
  11. 21 Jan, 2014 1 commit
  12. 08 Jan, 2014 3 commits
    • Dimitris Aragiorgis's avatar
      d7dfc73e
    • 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
    • Dimitris Aragiorgis's avatar
      66fdbb73
  13. 18 Dec, 2013 1 commit
  14. 17 Dec, 2013 1 commit
  15. 10 Dec, 2013 1 commit
  16. 09 Dec, 2013 1 commit
  17. 04 Dec, 2013 2 commits
  18. 02 Dec, 2013 3 commits
  19. 22 Nov, 2013 2 commits
  20. 15 Nov, 2013 1 commit
    • Christos Stavrakakis's avatar
      Rename 'cpu' and 'ram' resources · 726d06dc
      Christos Stavrakakis authored
      Rename CPU and RAM relative resources to avoid data migrations.
      Specifically, the resources that are renamed are the following:
      
      * cpu -> total_cpu
      * ram -> total_ram
      * active_cpu -> cpu
      * active_ram -> ram
      726d06dc
  21. 14 Nov, 2013 1 commit
  22. 29 Oct, 2013 2 commits
  23. 23 Oct, 2013 1 commit
  24. 22 Oct, 2013 2 commits
  25. 08 Oct, 2013 2 commits