{"id":19310048,"url":"https://github.com/cedadev/esgf-slcs-server-playbook","last_synced_at":"2026-06-11T22:31:41.836Z","repository":{"id":66788699,"uuid":"70155151","full_name":"cedadev/esgf-slcs-server-playbook","owner":"cedadev","description":"Ansible playbook for deploying an ESGF SLCS Server","archived":false,"fork":false,"pushed_at":"2017-05-31T07:11:14.000Z","size":43,"stargazers_count":0,"open_issues_count":2,"forks_count":2,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-02-24T03:27:02.393Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cedadev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-10-06T13:12:05.000Z","updated_at":"2016-10-06T14:06:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"b0b1c3a9-f049-4eae-8176-cb335d782cd3","html_url":"https://github.com/cedadev/esgf-slcs-server-playbook","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cedadev/esgf-slcs-server-playbook","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedadev%2Fesgf-slcs-server-playbook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedadev%2Fesgf-slcs-server-playbook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedadev%2Fesgf-slcs-server-playbook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedadev%2Fesgf-slcs-server-playbook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cedadev","download_url":"https://codeload.github.com/cedadev/esgf-slcs-server-playbook/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedadev%2Fesgf-slcs-server-playbook/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34221150,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T00:22:25.132Z","updated_at":"2026-06-11T22:31:41.812Z","avatar_url":"https://github.com/cedadev.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# esgf-slcs-server-playbook\n\nThis repository provides an Ansible playbook that can deploy the\n[esgf-slcs-server](https://github.com/cedadev/esgf-slcs-server).\n\n\n## Installing the ESGF SLCS Server\n\n**WARNING:** The playbook will only work on CentOS/RHEL 6.x, and has only been\ntested on CentOS 6.8.\n\nBefore running the playbook, Ansible must be installed:\n\n```\n$ yum install -y -q epel-release\n$ yum install -y -q ansible\n```\n\nThen clone and execute the playbook. The playbook must be executed as `root`:\n\n```\n$ git clone https://github.com/cedadev/esgf-slcs-server-playbook.git\n$ cd esgf-slcs-server-playbook\n$ sudo ansible-playbook -i playbook/inventories/localhost -e \"@path/to/overrides.yml\" playbook/playbook.yml\n```\n\nThe `ansible-playbook` command includes a reference to an overrides file. This is\na file that provides the Ansible variables appropriate for your setup.\n\nThere are three example override files provided. The variables available for modification\nare documented comprehensively in these files:\n\n  * [production_all.yml](playbook/overrides/production_all.yml): Demonstrates\n    settings for a standalone production installation on a blank machine - ESGF\n    SLCS Django application installed in a virtual environment and configured to\n    run using the Waitress WSGI server proxied by Nginx.\n\n  * [production_venv_only.yml](playbook/overrides/production_venv_only.yml):\n    Demonstrates settings for installing the ESGF SLCS Django application into a\n    virtual environment using an existing Python installation. Does not install\n    or configure the WSGI server or proxy, or any databases.\n\n  * [development.yml](playbook/overrides/development.yml):\n    Settings for installing the ESGF SLCS Django application for development,\n    primarily for use with the Vagrant box.\n\nThe only one that will run to completion without edits is ``development.yml``,\nwhich is used by the Vagrant box (see below). This is because some configuration\nis required for a production install (in particular of databases and the CA that\nissues the short-lived certificates).\n\n\n## Running a development sandbox using Vagrant and VirtualBox\n\n### VirtualBox\n\nVagrant needs a recent [VirtualBox installation](https://www.virtualbox.org/wiki/Downloads).\n\n### Installing Vagrant\n\nSee the [Vagrant documentation](https://www.vagrantup.com/docs/installation/) for installation details.\n\n#### Debian/Ubuntu/LinuxMint:\n\nUbuntu has a vagrant package but it is outdated. You can install Vagrant manually:\n\n```\n$ wget https://releases.hashicorp.com/vagrant/1.9.1/vagrant_1.9.1_x86_64.deb\n$ sudo dpkg -i vagrant_1.9.1_x86_64.deb\n```\n\n### Deploying the Vagrant VM\n\nFirst, modify the `config.vm.synced_folder` in the `Vagrantfile` to the location\nwhere you checked out the ESGF SLCS Server, then run `vagrant up`.\n\nMany OAuth clients that you may use to test the service require that the OAuth server\nruns using HTTPS. Hence everything on the provisioned VM sits behind an Nginx\nproxy providing HTTPS.\n\nThe default configuration for development requires you to log in to the provisioned\nVM and start the Django development server on port 5000:\n\n```\n$ vagrant ssh\n[vagrant@localhost ~]$ venv/bin/python /code/esgf-slcs-server/manage.py runserver 127.0.0.1:5000\n```\n\nStarting the Django development server on port 5000 allows Nginx to pick it up as\na downstream server and pass requests on.\n\nThe ESGF SLCS Server will then be available at `https://172.28.128.7`.\n\nThe Django administration view for configuring OAuth clients is at: `https://172.28.128.7/admin`.\n\nAnsible sets up a default user database with a test user:\n\n```\nusername = another\npassword = changeme\n```\n\nYou can change this in the Ansible configuration:\n\n```\nplaybook/roles/esgf_slcs_server/files/create-user-table.sql\n```\n\nChanges to Python files in your `esgf-slcs-server` checkout will cause the Django\ndevelopment server to reload automatically. However, because the Nginx server is\nserving static resources, any change to Javascript and CSS files will not be\nreflected by the server until the Ansible playbook is re-run to collect the static\nfiles:\n\n```\n[vagrant@localhost ~]$ sudo ansible-playbook -i /vagrant/playbook/inventories/localhost -e \"@/vagrant/playbook/overrides/development.yml\" /vagrant/playbook/playbook.yml\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcedadev%2Fesgf-slcs-server-playbook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcedadev%2Fesgf-slcs-server-playbook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcedadev%2Fesgf-slcs-server-playbook/lists"}