{"id":25107447,"url":"https://github.com/steve0verton/sas-admin","last_synced_at":"2025-07-19T01:32:27.165Z","repository":{"id":173726637,"uuid":"257646949","full_name":"Steve0verton/sas-admin","owner":"Steve0verton","description":"Collection of Ansible orchestration playbooks for day to day SAS administration tasks as well as AWS cloud resource management.","archived":false,"fork":false,"pushed_at":"2021-11-19T21:14:12.000Z","size":52,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-19T21:48:58.464Z","etag":null,"topics":["ansible","ansible-playbook","aws","aws-ec2","aws-s3","sas","yaml"],"latest_commit_sha":null,"homepage":"https://steve0verton.github.io/sas-admin","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Steve0verton.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,"zenodo":null}},"created_at":"2020-04-21T16:14:57.000Z","updated_at":"2024-10-05T14:05:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"ffacb147-b3c3-467b-b6f4-a5d3bafa9e83","html_url":"https://github.com/Steve0verton/sas-admin","commit_stats":null,"previous_names":["steve0verton/sas-admin"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Steve0verton/sas-admin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Steve0verton%2Fsas-admin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Steve0verton%2Fsas-admin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Steve0verton%2Fsas-admin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Steve0verton%2Fsas-admin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Steve0verton","download_url":"https://codeload.github.com/Steve0verton/sas-admin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Steve0verton%2Fsas-admin/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265871282,"owners_count":23842010,"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":["ansible","ansible-playbook","aws","aws-ec2","aws-s3","sas","yaml"],"created_at":"2025-02-07T23:48:07.756Z","updated_at":"2025-07-19T01:32:27.158Z","avatar_url":"https://github.com/Steve0verton.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# SAS Administration Toolkit\n\nCollection of Ansible orchestration playbooks for day to day SAS administration tasks including SAS program batch execution.  SAS Viya version 3.X is the intended platform **(not SAS Viya version 4.x)**.  SAS 9.X may be supported by certain Ansible playbooks within this repository but should be reconciled and assessed with discretion.  Playbooks for AWS cloud resource management are intended to be used for environment creation and management in a more efficient and standardized manner for cloud deployments.\n\n**Disclaimer:** Ansible tasks attempt to be a universal as possible. Confirm environment references are supported by the target environment capabilities and security requirements. For example, Ansible changing user to ROOT or writing files to /tmp. Review, test and confirm Ansible playbook tasks in non-production environments before supporting production activities.\n\n## Table of Contents\n\n* [Project Directory Structure](#project-directory-structure)\n* [Installation](#installation)\n  * [Ansible](#ansible)\n  * [AWS CLI Installation](#aws-cli-installation)\n  * [AWS CLI Configuration](#aws-cli-configuration)\n* [Usage](#usage)\n* [Standards](#standards)\n  * [File Properties](#file-properties)\n  * [Header Properties](#header-properties)\n  * [Coding Standards](#coding-standards)\n* [Reference](#reference)\n* [Author Contact](#author)\n\n\n## Project Directory Structure\n\n[admin](./admin):\n * Common administration tasks to manage SAS environments\n * Ansible playbooks and tasks written in YAML\n * Requires Linux operating system\n * Some tasks reference AWS cloud services and require playbook editing if AWS is not required\n * Requires configured AWS command line interface tool\n * Leverages SAS Viya deployment Ansible inventory file\n * Primary focus on SAS administration with some AWS cloud enablement that can be replaced\n\n[aws](./aws):\n * Build and manage AWS resources for SAS deployments\n * Ansible playbooks and tasks written in YAML\n * Amazon Web Services dependent\n * Requires configured AWS command line interface tool\n * Primary focus on AWS cloud resource administration\n\n[job_execution](./job_execution):\n * Execute SAS on local or remote machines for scheduled batch processing\n * Execute API calls on SAS Viya endpoints\n * Ansible playbooks and tasks written in YAML\n * Requires Linux operating system\n * Requires user provided SAS program to execute\n * Requires SAS Foundation\n * Assumes any SAS dependencies such as CAS or metadata aware connections are made within program or autoexec definition\n\n[validation](./validation):\n * Tasks to validate SAS microservices\n * Ansible playbooks and tasks written in YAML\n * Requires configured AWS command line interface tool\n\n## Installation\n\nClone or download the repository to an Ansible control node (also referred to as controller). For basic concepts of Ansible refer to [Ansible Documentation](https://docs.ansible.com/ansible/latest/network/getting_started/basic_concepts.html). It may be most efficient to clone the repository into a parent directory already organized for broader tasks.  In other words, many tasks within the repository were designed to be pieces of a broader set of playbooks and could potentially be customized to support a range of use cases and deployment types. **A qualified administrator should test and confirm all playbooks prior to running in a production environment.**\n\n### Ansible\n\n[SAS Support documentation](https://go.documentation.sas.com/?cdcId=calcdc\u0026cdcVersion=3.5\u0026docsetId=dplyml0phy0lax\u0026docsetTarget=p1puupgtsay2r5n1h6k11n6lpl97.htm\u0026locale=en#) provides steps to install Ansible.\n\nAnsible playbooks within the repository were designed and developed following [SAS third party requirements for Ansible](https://support.sas.com/en/documentation/third-party-software-reference/viya/35/support-for-operating-systems.html).\n\n### AWS CLI Installation\n\nAWS CLI version 1 is required to execute playbooks within the **aws** directory. AWS CLI version 2 should also work but has not been tested. The following steps can be used to install the AWS CLI version 1 on a linux machine.\n\n```shell\ncd /tmp\ncurl -O https://bootstrap.pypa.io/get-pip.py\nsudo python get-pip.py\nsudo pip install awscli --upgrade\nsudo pip install boto\nsudo pip install boto3\n```\n\nFor further instruction reference [AWS Documentation](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html).\n\n### AWS CLI Configuration\n\nThe AWS CLI must be configured on all target hosts and the control node running the playbook.  Many Ansible AWS modules require the AWS_ACCESS_KEY and AWS_SECRET_KEY set as an environment variable, which may be different from how the AWS configuration tool sets up the target environment. Amazon AMIs can be leveraged to standardize a base snapshot for target EC2 instances with tools such as the AWS CLI already installed and configured.\n\nAs an example, the following environment variables can be set using a file within **/etc/profile.d/**\n```shell\nexport AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE\nexport AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY\nexport AWS_DEFAULT_REGION=us-east-1\n```\n\n## Usage\n\nAnsible playbooks and tasks should be carefully inspected, analyzed and tested before leveraging in a full production environment.  Playbooks are meant to provide a process to follow with configuration dependening on the target environment.  Broader playbooks and process flows can be constructed from the individual components.  Additional thoughts and suggestions are encouraged. Please leverage GitHub issue tracking to document.\n\n## Standards\n\n### File Properties\n\n - filenames must be lowercase using underscores\n - unix style line endings (LF)\n - UTF-8\n\n### Header Properties\n\n - **Purpose:** very short description of the purpose and goal of the macro.\n - **Key Dependencies:** short description of key dependencies itemized in a list, including any YAML variables which need to be set.\n - **Notes:** general notes and important considerations for the overall playbook (if any).\n\nAdditional properties such as last modified timestamps, authorship and revision history are maintained within the git repository.\n\n### Coding Standards\n\n - Indentation = 2 spaces with no tabs.\n - Empty line separating each Ansible task.\n - Tasks are named.\n - Boolean values for Ansible plays are specified as \"yes\" and \"no\".\n - Important variables are defined within play using **vars** list.\n - The phrase **NOTE:** is used to highlight important notes throughout code.\n - The phrase **TODO:** is used to note future enhancements.\n - Universal text to highlight replacement of text with environment-specific value: **REPLACEME**.\n\n## Reference\n\n - [How Ansible Works](https://www.ansible.com/overview/how-ansible-works) - RedHat\n\n## Author Contact\n\n - [Steve Overton](https://www.linkedin.com/in/overton/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteve0verton%2Fsas-admin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsteve0verton%2Fsas-admin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteve0verton%2Fsas-admin/lists"}