SlapOS is a decentralized Cloud Computing technology that can automate the deployment and configuration of applications in a heterogeneous environment.

After Cloud Technology: SlapOS

Level: Undergraduate / Graduate Duration: 3 hours
Technical requirements: IPv6 Internet connection with standard compliant webbrowser Contributors: Cédric Le Ninivin

Cloud and Devops

  1. After Cloud Presentation
  2. SlapOS Architecture (Presentation)

Devops with Web Runner

  1. Connect to your runner:
  2. Select the software to use:
    1. Click on the home button
    2. Click "Open Software Release"
    3. Select "html5as" in "software" in "slapos"
    4. Click "Open Software"
    5. The profile of your software should open
    6. Press Build and Run Button (Play button)
  3. Add parameter: download_url =
    1. Check the logs, there is an error, a parameter is missing
    2. go on "Services" tab
    3. in "Services" tab go in "Parameters" tab
    4. click "new"
    5. add the value: download_url =
    6. Run your instance
    7. Check no error are left
  4. On the service tab, get Connection Information and access your website (if needed add /officejs/)
  5. On the service tab, see running process
    1. "Downloader" process is in charge of downloading the provided file
    2. "Launcher" is NGINX a server web (if you click on "RUNNING", it will stop your service, you won't be able to access your website anymore )
  6. Change the default nginx directory
    1. Manually
      1. Go in "editor" tab: Documentation here
      2. Use the "switch" to be in "Working Dir"
      3. You'll now see your full folder tree. Explanation here: Folder Hierarchy
      4. go to "instance/slappart0/etc" and select "nginx.conf" 
      5. Add "officejs" at the end of the root folder to automatically use the downloaded folder
      6. The change is not applied yet, you need to restart
      7. Restart "slappart0:launcher" (nginx) from "Service" tab in "Process" tab 
      8. Test it works
      9. This way is bad. Everything has been done manually, it'll need to be done again each time you deploy this site
    2. Devops, We will automate our actions with SlapOS
      1. What action has been taken?
      2. Set the directory as a parameter of the instance (just like download_url)
        1. Go in "editor" tab
        2. Use the "switch" to be in "This project"
        3. Your software is defined in "software/html5as"
        4. is used to configure the instance, templates/ is used as a template to generate the configuration
        5. Find where the root path is defined and add a parameter to it. See how it has been made here:
        6. Trigger "build and run"
        7. If you get a md5sum error update it using "Get Or update md5sum"
        8. Add the parameter in services and trigger build and run
        9. Check Nginx configuration
      3. Restart
        1. Do not restart services, it generates downtime. Use graceful restart
        2. Look on the internet to know how to do graceful restart with Nginx, it should be a signal
        3. Now use it on your current Nginx to test its efficiency
        4. Look at how it is done in apache-frontend software release:
        5. Start adding it to your software release in a similar way as this one:
        6. Make it work 😀
  7. Have an instance request another instance.
    1. The first step of making a CDN:
      1. In a CDN, the "root" instances receives all the parameters and send them to other instances running the actual frontend
      2. First define a new software type in instance.cfg
      3. Then add a new template for this software type
      4. Fill the template to request an instance
      5. You can get more information here:
    2. Exercice:
      1. Have your replicate instance request 2 instances
      2. There is a conflict of port (both nginx instances are using the same port)
      3. Add a parameter to the default instance the port number to use following the same idea as the default path.
      4. Extra: Add a promise to check you can correctly access your website.

HTML5 et jIO c'est sympa

  1. Présentation: P-OJS-Shenzen
  2. Documentation:

Extra links

contact: Cédric Le Ninivin, 

Accès aux Instances

{'backend-url': 'https://[2001:67c:1254:e:1d::baeb]:50005',
 'git-private-url': 'https://[2001:67c:1254:e:1d::baeb]:9686/git/',
 'git-public-url': 'https://[2001:67c:1254:e:1d::baeb]:9686/git-public/',
 'init-password': 'qtjlvsou',
 'init-user': 'admin',
 'monitor-base-url': '',
 'monitor-setup-url': ';=;=admin&password;=qtjlvsou',
 'public-url': '',
 'ssh-command': 'ssh slapuser1@2001:67c:1254:e:1d::baeb -p 22222',
 'url': '',
 'webdav-url': '',
 'custom-url': ''}

{'backend-url': 'https://[2001:67c:1254:19::c4dd]:50005',
 'git-private-url': 'https://[2001:67c:1254:19::c4dd]:9686/git/',
 'git-public-url': 'https://[2001:67c:1254:19::c4dd]:9686/git-public/',
 'init-password': 'tczdqfnr',
 'init-user': 'admin',
 'monitor-base-url': '',
 'monitor-setup-url': ';=;=admin&password;=tczdqfnr',
 'public-url': '',
 'ssh-command': 'ssh slapuser23@2001:67c:1254:19::c4dd -p 22222',
 'url': '',
 'webdav-url': '',
 'custom-url': ''}

{'backend-url': 'https://[2001:67c:1254:29::3cc]:50005',
 'git-private-url': 'https://[2001:67c:1254:29::3cc]:9686/git/',
 'git-public-url': 'https://[2001:67c:1254:29::3cc]:9686/git-public/',
 'init-password': 'qyzdjmvw',
 'init-user': 'admin',
 'monitor-base-url': '',
 'monitor-setup-url': ';=;=admin&password;=qyzdjmvw',
 'public-url': '',
 'ssh-command': 'ssh slapuser6@2001:67c:1254:29::3cc -p 22222',
 'url': '',
 'webdav-url': '',
 'custom-url': ''}

{'backend-url': 'https://[2001:67c:1254:19::2c92]:50005',
 'git-private-url': 'https://[2001:67c:1254:19::2c92]:9686/git/',
 'git-public-url': 'https://[2001:67c:1254:19::2c92]:9686/git-public/',
 'init-password': 'pycjoahk',
 'init-user': 'admin',
 'monitor-base-url': '',
 'monitor-setup-url': ';=;=admin&password;=pycjoahk',
 'public-url': '',
 'ssh-command': 'ssh slapuser27@2001:67c:1254:19::2c92 -p 22222',
 'url': '',
 'webdav-url': '',
 'custom-url': ''}

{'backend-url': 'https://[2001:67c:1254:e:c8::440a]:50005',
 'git-private-url': 'https://[2001:67c:1254:e:c8::440a]:9686/git/',
 'git-public-url': 'https://[2001:67c:1254:e:c8::440a]:9686/git-public/',
 'init-password': 'zgqefjpi',
 'init-user': 'admin',
 'monitor-base-url': '',
 'monitor-setup-url': ';=;=admin&password;=zgqefjpi',
 'public-url': '',
 'ssh-command': 'ssh slapuser0@2001:67c:1254:e:c8::440a -p 22222',
 'url': '',
 'webdav-url': '',
 'custom-url': ''}

{'backend-url': 'https://[2001:67c:1254:e:d7::84cf]:50005',
 'git-private-url': 'https://[2001:67c:1254:e:d7::84cf]:9686/git/',
 'git-public-url': 'https://[2001:67c:1254:e:d7::84cf]:9686/git-public/',
 'init-password': 'nspmaqti',
 'init-user': 'admin',
 'monitor-base-url': '',
 'monitor-setup-url': ';=;=admin&password;=nspmaqti',
 'public-url': '',
 'ssh-command': 'ssh slapuser10@2001:67c:1254:e:d7::84cf -p 22222',
 'url': '',
 'webdav-url': '',
 'custom-url': ''}

{'backend-url': 'https://[2001:67c:1254:e:86::f8bd]:50005',
 'git-private-url': 'https://[2001:67c:1254:e:86::f8bd]:9686/git/',
 'git-public-url': 'https://[2001:67c:1254:e:86::f8bd]:9686/git-public/',
 'init-password': 'eosgvbfx',
 'init-user': 'admin',
 'monitor-base-url': '',
 'monitor-setup-url': ';=;=admin&password;=eosgvbfx',
 'public-url': '',
 'ssh-command': 'ssh slapuser4@2001:67c:1254:e:86::f8bd -p 22222',
 'url': '',
 'webdav-url': '',
 'custom-url': ''}

{'backend-url': 'https://[2001:67c:1254:e:86::4566]:50005',
 'git-private-url': 'https://[2001:67c:1254:e:86::4566]:9686/git/',
 'git-public-url': 'https://[2001:67c:1254:e:86::4566]:9686/git-public/',
 'init-password': 'jtiwkrah',
 'init-user': 'admin',
 'monitor-base-url': '',
 'monitor-setup-url': ';=;=admin&password;=jtiwkrah',
 'public-url': '',
 'ssh-command': 'ssh slapuser3@2001:67c:1254:e:86::4566 -p 22222',
 'url': '',
 'webdav-url': '',
 'custom-url': ''}

{'backend-url': 'https://[2001:67c:1254:e:c1::5aa1]:50005',
 'git-private-url': 'https://[2001:67c:1254:e:c1::5aa1]:9686/git/',
 'git-public-url': 'https://[2001:67c:1254:e:c1::5aa1]:9686/git-public/',
 'init-password': 'gxurdpzi',
 'init-user': 'admin',
 'monitor-base-url': '',
 'monitor-setup-url': ';=;=admin&password;=gxurdpzi',
 'public-url': '',
 'ssh-command': 'ssh slapuser10@2001:67c:1254:e:c1::5aa1 -p 22222',
 'url': '',
 'webdav-url': '',
 'custom-url': ''}

{'backend-url': 'https://[2001:67c:1254:e:63::d1ab]:50005',
 'git-private-url': 'https://[2001:67c:1254:e:63::d1ab]:9686/git/',
 'git-public-url': 'https://[2001:67c:1254:e:63::d1ab]:9686/git-public/',
 'init-password': 'rhmqfkxy',
 'init-user': 'admin',
 'monitor-base-url': '',
 'monitor-setup-url': ';=;=admin&password;=rhmqfkxy',
 'public-url': '',
 'ssh-command': 'ssh slapuser1@2001:67c:1254:e:63::d1ab -p 22222',
 'url': '',
 'webdav-url': '',
 'custom-url': ''}