{"id":20723253,"url":"https://github.com/lsst-it/puppet-ccs_software","last_synced_at":"2026-01-03T01:30:16.191Z","repository":{"id":44526201,"uuid":"264262581","full_name":"lsst-it/puppet-ccs_software","owner":"lsst-it","description":"Puppet Module to Deploy LSST Camera Control System (CSS) Software","archived":false,"fork":false,"pushed_at":"2024-10-24T17:41:40.000Z","size":264,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-10-29T20:58:03.850Z","etag":null,"topics":["ccs","puppet"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lsst-it.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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":"2020-05-15T17:55:57.000Z","updated_at":"2024-10-24T17:41:41.000Z","dependencies_parsed_at":"2024-11-12T20:23:37.663Z","dependency_job_id":"60024b7e-a694-42e0-8b94-5b266f4559ed","html_url":"https://github.com/lsst-it/puppet-ccs_software","commit_stats":null,"previous_names":[],"tags_count":40,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lsst-it%2Fpuppet-ccs_software","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lsst-it%2Fpuppet-ccs_software/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lsst-it%2Fpuppet-ccs_software/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lsst-it%2Fpuppet-ccs_software/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lsst-it","download_url":"https://codeload.github.com/lsst-it/puppet-ccs_software/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239728328,"owners_count":19687334,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["ccs","puppet"],"created_at":"2024-11-17T04:08:04.051Z","updated_at":"2026-01-03T01:30:16.147Z","avatar_url":"https://github.com/lsst-it.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ccs_software\n\n[![Build Status](https://travis-ci.com/lsst-it/puppet-ccs_software.svg?branch=master)](https://travis-ci.com/lsst-it/puppet-ccs_software)\n\n## Table of Contents\n\n1. [Overview](#overview)\n1. [Description](#description)\n1. [Setup - The basics of getting started with ccs_software](#setup)\n    * [What ccs_software affects](#what-ccs_software-affects)\n    * [Setup requirements](#setup-requirements)\n1. [Usage - Configuration options and additional functionality](#usage)\n1. [Reference - An under-the-hood peek at what the module is doing and how](#reference)\n\n## Overview\n\nThis module manages *installation*s of Camera Control System (CCS) software.\n\n## Description\n\nThe ccs_software module can optionally manage one or more *installation*s.\n\n## Setup\n\n### What ccs_software affects\n\n* `install.py` script\n* ccs /scripts/\n* `/lsst` link\n* clone(s) of the package-list repo\n* ccs `etc` directory\n* ccs `log` directory\n* [optional] /installations/ of ccs software\n* [optional] systemd service units for ccs applications\n\n### Setup Requirements\n\n* `ccs` and `ccsadm` user accounts\n* The systemd service units created by this module require `java` to be installed on the system.  See [`java_artisanal`])https://github.com/lsst-it/puppet-java_artisanal)\n\n## Usage\n\n### Absolute Minimal Example / If you want to manually create installations\n\nWhen the `ccs_software` class is included with no parameters it will create directories, install the `install.py` script, etc. but it *will not* create a CCS *installation*.\n\n```puppet\naccounts::user { 'ccs': }\naccounts::user { 'ccsadm': }\ninclude ccs_software\n```\n\n### Example profile\n\nThis is an example of minimal\n[profile](https://puppet.com/docs/pe/latest/the_roles_and_profiles_method.html)\nthat provides the requirements listed in [Setup\nrequirements](#setup-requirements).  The intent is that the majority of\nconfiguration to the `ccs_software` class be provided via hiera data.\n\n```puppet\nclass profile::ccs::common {\n  include ccs_software\n  include accounts\n  include java_artisanal\n\n  Class['java_artisanal']\n  -\u003e Class['ccs_software']\n\n  accounts::user { 'ccs':\n    uid =\u003e 62000,\n    gid =\u003e 62000,\n  }\n  accounts::user { 'ccsadm':\n    uid =\u003e 62001,\n    gid =\u003e 62001,\n  }\n}\n```\n\n### Installation(s)\n\nThis example creates two installations at the paths `/opt/lsst/ccs/master` and\n`/opt/lsst/ccs/e4a8224`.  Where `master` and `e4a8224` are refs in the\n[`lsst-camera-dh/dev-package-lists`](https://github.com/lsst-camera-dh/dev-package-lists).\n\n```yaml\n---\nclasses:\n  - \"profile::ccs::common\"\n\nccs_software::hostname: \"comcam-mcm\"  # not required if `comcam-mcm` is the real hostname\nccs_software::env: \"ComCam\"\nccs_software::installations:\n  master: {}\n  e4a8224: {},\n```\n\nThe literal invocations of the `install.py` command would be something like:\n\n```bash\n/opt/lsst/release/bin/install.py --ccs_inst_dir /opt/lsst/ccs/master /opt/lsst/ccsadm/package-lists/master/ComCam/comcam-mcm/ccsApplications.txt\n```\n\nand\n\n```bash\n/opt/lsst/release/bin/install.py --ccs_inst_dir /opt/lsst/ccs/e4a8224 /opt/lsst/ccsadm/package-lists/e4a8224/ComCam/comcam-mcm/ccsApplications.txt\n```\n\nNote that a separate clone of the `dev-package-lists` repo is created for each *installation*.\n\n### Service(s)\n\nThis example will create a systemd service unit named `comcam-mcm` that\nexecutes `/opt/lsst/ccs/dev/bin/comcam-mcm`.\n\n```yaml\nclasses:\n  - \"profile::ccs::common\"\n\nccs_software::env: \"ComCam\"\nccs_software::installations:\n  e4a8224:\n    aliases:\n      - \"dev\"\nccs_software::services:\n  dev:\n    - \"comcam-mcm\"\n```\n\n### Desktop\n\n```yaml\nclasses:\n  - \"profile::ccs::common\"\n\nccs_software::desktop: true  # default is false\n```\n\n### Multiple Installations sharing a git clone\n\nThis may be an efficiency optimization for simulating a large number of hosts on\na single node.\n\n```yaml\n---\nclasses:\n  - \"profile::ccs::common\"\n\nccs_software::base_path: \"/opt/lsst\"\nccs_software::env: \"ComCam\"\nccs_software::installations:\n  test-mcm:\n    repo_path: \"%{lookup('ccs_software::base_path')}/ccsadm/package-lists/e4a8224\"\n    repo_ref: \"e4a8224\"\n    hostname: \"comcam-mcm\"\n  test-fp:\n    repo_path: \"%{lookup('ccs_software::base_path')}/ccsadm/package-lists/e4a8224\"\n    repo_ref: \"e4a8224\"\n    hostname: \"comcam-fp01\"\nccs_software::services:\n  test-mcm:\n    - \"comcam-mcm\"\n  test-fp:\n    - \"comcam-fp01\"\n```\n\n### Force git clone update\n\nIn the event that a git clone has local changes, and the `vcsrepo` type is\nhaving trouble updating it, setting the `force_git` flag will cause the clones\nto be **deleted** and re-cloned on every puppet run.  This flag should generally\nonly be set temporarily to resolve a known issue.\n\n```yaml\n---\nclasses:\n  - \"profile::ccs::common\"\n\nccs_software::env: \"ComCam\"\nccs_software::force_git: true\nccs_software::installations:\n  master: {}\n```\n\n### Pedantic Example\n\n```yaml\n---\nclasses:\n  - \"profile::ccs::common\"\n\nccs_software::base_path: \"/opt/lsst\"\nccs_software::etc_path: \"/etc/ccs\"\nccs_software::log_path: \"/var/log/ccs\"\nccs_software::user: \"ccs\"\nccs_software::group: \"ccs\"\nccs_software::adm_user: \"ccsadm\"\nccs_software::adm_group: \"ccsadm\"\nccs_software::pkglist_repo_url: \"https://github.com/lsst-camera-dh/dev-package-lists\" # overriden in installations hash\nccs_software::release_repo_url: \"https://github.com/lsst-it/release\"\nccs_software::release_repo_ref: \"IT-2233/working\"\nccs_software::env: ~ # overriden in installations hash\nccs_software::hostname: \"%{lookup(facts.hostname)}\" # overidden in installations hash\nccs_software::desktop: false\nccs_software::git_force: false\nccs_software::installations:\n  test1:\n    repo_path: \"%{lookup('ccs_software::base_path')}/ccsadm/package-lists/test1\"\n    repo_url: \"https://github.com/lsst-camera-dh/dev-package-lists\"\n    repo_ref: \"e4a8224\"\n    env: \"ComCam\"\n    hostname: \"comcam-mcm\"\n    aliases:\n      - \"dev\"\n  test42:\n    repo_path: \"%{lookup('ccs_software::base_path')}/ccsadm/package-lists/test42\"\n    repo_url: \"https://github.com/lsst-camera-dh/dev-package-lists\"\n    repo_ref: \"e4a8224\"\n    env: \"IR2\"\n    hostname: \"lsst-dc01\"\n    aliases:\n      - \"prod\"\nccs_software::services:\n  dev:\n    - \"comcam-mcm\"\n  prod:\n    - \"lsst-dc01\"\n```\n\n## Reference\n\nSee [REFERENCE](REFERENCE.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flsst-it%2Fpuppet-ccs_software","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flsst-it%2Fpuppet-ccs_software","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flsst-it%2Fpuppet-ccs_software/lists"}