Skip to content

Commit

Permalink
stub the new structure
Browse files Browse the repository at this point in the history
  • Loading branch information
gionn committed Nov 22, 2024
1 parent 8883dfb commit 76b43fa
Show file tree
Hide file tree
Showing 44 changed files with 833 additions and 0 deletions.
1 change: 1 addition & 0 deletions .envrc
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ export DTAS_VERSION=v1.5.3
export MOLECULE_IT_ID=$(echo "$LOGNAME" | sha256sum | cut -c1-6)
ANSIBLE_VAULT_PASSWORD_FILE=$(expand_path ./.vault_pass.txt)
export ANSIBLE_VAULT_PASSWORD_FILE
export PIPENV_MAX_DEPTH=6

source_env_if_exists .env.credentials
env_vars_required CLONE_GITHUB_TOKEN
Expand Down
3 changes: 3 additions & 0 deletions collections/alfresco/common/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Ansible Collection - alfresco.common

This collection provides a set of reusable roles maintained by Alfresco for use in Ansible playbooks.
68 changes: 68 additions & 0 deletions collections/alfresco/common/galaxy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
### REQUIRED
# The namespace of the collection. This can be a company/brand/organization or product namespace under which all
# content lives. May only contain alphanumeric lowercase characters and underscores. Namespaces cannot start with
# underscores or numbers and cannot contain consecutive underscores
namespace: alfresco

# The name of the collection. Has the same character restrictions as 'namespace'
name: common

# The version of the collection. Must be compatible with semantic versioning
version: 1.0.0

# The path to the Markdown (.md) readme file. This path is relative to the root of the collection
readme: README.md

# A list of the collection's content authors. Can be just the name or in the format 'Full Name <email> (url)
# @nicks:irc/im.site#channel'
authors:
- your name <[email protected]>


### OPTIONAL but strongly recommended
# A short summary description of the collection
description: your collection description

# Either a single license or a list of licenses for content inside of a collection. Ansible Galaxy currently only
# accepts L(SPDX,https://spdx.org/licenses/) licenses. This key is mutually exclusive with 'license_file'
license:
- GPL-2.0-or-later

# The path to the license file for the collection. This path is relative to the root of the collection. This key is
# mutually exclusive with 'license'
license_file: ''

# A list of tags you want to associate with the collection for indexing/searching. A tag name has the same character
# requirements as 'namespace' and 'name'
tags: []

# Collections that this collection requires to be installed for it to be usable. The key of the dict is the
# collection label 'namespace.name'. The value is a version range
# L(specifiers,https://python-semanticversion.readthedocs.io/en/latest/#requirement-specification). Multiple version
# range specifiers can be set and are separated by ','
dependencies: {}

# The URL of the originating SCM repository
repository: http://example.com/repository

# The URL to any online docs
documentation: http://docs.example.com

# The URL to the homepage of the collection/project
homepage: http://example.com

# The URL to the collection issue tracker
issues: http://example.com/issue/tracker

# A list of file glob-like patterns used to filter any files or directories that should not be included in the build
# artifact. A pattern is matched from the relative path of the file or directory of the collection directory. This
# uses 'fnmatch' to match the files or directories. Some directories and files like 'galaxy.yml', '*.pyc', '*.retry',
# and '.git' are always filtered. Mutually exclusive with 'manifest'
build_ignore: []

# A dict controlling use of manifest directives used in building the collection artifact. The key 'directives' is a
# list of MANIFEST.in style
# L(directives,https://packaging.python.org/en/latest/guides/using-manifest-in/#manifest-in-commands). The key
# 'omit_default_directives' is a boolean that controls whether the default directives are used. Mutually exclusive
# with 'build_ignore'
# manifest: null
52 changes: 52 additions & 0 deletions collections/alfresco/common/meta/runtime.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
# Collections must specify a minimum required ansible version to upload
# to galaxy
# requires_ansible: '>=2.9.10'

# Content that Ansible needs to load from another location or that has
# been deprecated/removed
# plugin_routing:
# action:
# redirected_plugin_name:
# redirect: ns.col.new_location
# deprecated_plugin_name:
# deprecation:
# removal_version: "4.0.0"
# warning_text: |
# See the porting guide on how to update your playbook to
# use ns.col.another_plugin instead.
# removed_plugin_name:
# tombstone:
# removal_version: "2.0.0"
# warning_text: |
# See the porting guide on how to update your playbook to
# use ns.col.another_plugin instead.
# become:
# cache:
# callback:
# cliconf:
# connection:
# doc_fragments:
# filter:
# httpapi:
# inventory:
# lookup:
# module_utils:
# modules:
# netconf:
# shell:
# strategy:
# terminal:
# test:
# vars:

# Python import statements that Ansible needs to load from another location
# import_redirection:
# ansible_collections.ns.col.plugins.module_utils.old_location:
# redirect: ansible_collections.ns.col.plugins.module_utils.new_location

# Groups of actions/modules that take a common set of options
# action_groups:
# group_name:
# - module1
# - module2
31 changes: 31 additions & 0 deletions collections/alfresco/common/plugins/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Collections Plugins Directory

This directory can be used to ship various plugins inside an Ansible collection. Each plugin is placed in a folder that
is named after the type of plugin it is in. It can also include the `module_utils` and `modules` directory that
would contain module utils and modules respectively.

Here is an example directory of the majority of plugins currently supported by Ansible:

```sh
└── plugins
├── action
├── become
├── cache
├── callback
├── cliconf
├── connection
├── filter
├── httpapi
├── inventory
├── lookup
├── module_utils
├── modules
├── netconf
├── shell
├── strategy
├── terminal
├── test
└── vars
```

A full list of plugin types can be found at [Working With Plugins](https://docs.ansible.com/ansible-core/2.15/plugins/plugins.html).
118 changes: 118 additions & 0 deletions collections/alfresco/common/roles/systemd_service/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
# systemd_service

Install and configure systemd services

## Table of content

* [systemd\_service](#systemd_service)
* [Table of content](#table-of-content)
* [Requirements](#requirements)
* [Default Variables](#default-variables)
* [systemd\_service\_additional\_options](#systemd_service_additional_options)
* [systemd\_service\_enabled](#systemd_service_enabled)
* [systemd\_service\_environment](#systemd_service_environment)
* [systemd\_service\_exec\_start](#systemd_service_exec_start)
* [systemd\_service\_exec\_stop](#systemd_service_exec_stop)
* [systemd\_service\_state](#systemd_service_state)
* [systemd\_service\_type](#systemd_service_type)
* [systemd\_service\_unit\_after](#systemd_service_unit_after)
* [systemd\_service\_unit\_description](#systemd_service_unit_description)
* [systemd\_service\_unit\_name](#systemd_service_unit_name)
* [systemd\_service\_user](#systemd_service_user)
* [systemd\_service\_working\_directory](#systemd_service_working_directory)
* [Dependencies](#dependencies)
* [License](#license)
* [Author](#author)

---

## Requirements

* Minimum Ansible version: `2.1`

## Default Variables

### systemd_service_additional_options

```YAML
systemd_service_additional_options: {}
```
### systemd_service_enabled
```YAML
systemd_service_enabled: true
```
### systemd_service_environment
```YAML
systemd_service_environment: {}
```
### systemd_service_exec_start
```YAML
systemd_service_exec_start: ''
```
### systemd_service_exec_stop
```YAML
systemd_service_exec_stop: kill -15 $MAINPID
```
### systemd_service_state
```YAML
systemd_service_state: started
```
### systemd_service_type
```YAML
systemd_service_type: simple
```
### systemd_service_unit_after
```YAML
systemd_service_unit_after: syslog.target network.target local-fs.target remote-fs.target
nss-lookup.target
```
### systemd_service_unit_description
```YAML
systemd_service_unit_description: ''
```
### systemd_service_unit_name
```YAML
systemd_service_unit_name: ''
```
### systemd_service_user
```YAML
systemd_service_user: ''
```
### systemd_service_working_directory
```YAML
systemd_service_working_directory: /tmp
```
## Dependencies
None.
## License
Apache-2.0
## Author
Alfresco Ops Readiness
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
# defaults file for systemd-service
systemd_service_unit_name: ''
systemd_service_unit_description: ''
systemd_service_unit_after: syslog.target network.target local-fs.target remote-fs.target nss-lookup.target

systemd_service_type: simple
systemd_service_user: ''
systemd_service_environment: {}
systemd_service_exec_start: ''
systemd_service_exec_stop: kill -15 $MAINPID
systemd_service_working_directory: /tmp
systemd_service_additional_options: {}
systemd_service_state: started
systemd_service_enabled: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# handlers file for systemd-service
- name: Reload systemd
ansible.builtin.systemd:
daemon_reload: true

- name: Restart {{ systemd_service_unit_name }}
ansible.builtin.systemd:
name: "{{ systemd_service_unit_name }}"
state: restarted
when: systemd_service_state == 'started'
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
argument_specs:
main:
short_description: Install a systemd service unit
description: |
This role installs a systemd service unit and starts it.
options:
systemd_service_unit_name:
type: str
description: Name of the systemd service unit
required: true
systemd_service_unit_description:
type: str
description: Description of the systemd service unit
required: true
systemd_service_unit_after:
type: str
description: List of systemd targets to start after (space separated)
systemd_service_type:
type: str
description: Type of the systemd service unit
default: simple
systemd_service_user:
type: str
description: User to run the systemd service as
required: true
systemd_service_environment:
type: dict
description: Environment variables to set for the systemd service unit
default: {}
systemd_service_exec_start:
type: str
description: Command to start the systemd service unit
required: true
systemd_service_exec_stop:
type: str
description: Command to stop the systemd service unit
default: kill -15 $MAINPID
systemd_service_working_directory:
type: str
description: Working directory for the systemd service unit
default: /tmp
systemd_service_additional_options:
type: dict
description: Additional options to set for the systemd service unit
default: {}
systemd_service_state:
type: str
description: Default state of the systemd service unit
default: started
systemd_service_enabled:
type: bool
description: Whether the systemd service unit should be enabled (started on boot)
default: true
15 changes: 15 additions & 0 deletions collections/alfresco/common/roles/systemd_service/meta/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
galaxy_info:
author: Alfresco Ops Readiness
description: Install and configure systemd services
company: Hyland

license: Apache-2.0

min_ansible_version: '2.1'

galaxy_tags:
- systemd
- service
- configuration

dependencies: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
- name: Converge
hosts: all
gather_facts: false
tasks:
- name: Include role
ansible.builtin.include_role:
name: systemd_service
vars:
systemd_service_unit_name: my-test-service
systemd_service_unit_description: My very cool service
systemd_service_exec_start: /bin/sleep infinity
systemd_service_environment:
MY_ENV_VAR: my_value
ANOTHER_ENV_VAR: another_value
Loading

0 comments on commit 76b43fa

Please sign in to comment.