diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..fc3c7af --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,4 @@ +--- + +github: [do1jlr] +liberapay: l3d diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..cea62b3 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,14 @@ +--- +# See https://docs.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates +version: 2 +updates: + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + + - package-ecosystem: "gitsubmodule" + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/workflows/ansible-linting-check.yml b/.github/workflows/ansible-linting-check.yml new file mode 100644 index 0000000..2e4d4bb --- /dev/null +++ b/.github/workflows/ansible-linting-check.yml @@ -0,0 +1,22 @@ +--- +name: Ansible Lint check + +# yamllint disable-line rule:truthy +on: [push, pull_request] + +jobs: + build: + name: Ansible Lint + runs-on: ubuntu-latest + + steps: + - name: Checkout git repo + uses: actions/checkout@v4 + with: + submodules: true + fetch-depth: 0 + + - name: Run ansible-lint + uses: ansible-actions/ansible-lint-action@v1.0.3 + with: + target: "./" diff --git a/.github/workflows/galaxy.yml b/.github/workflows/galaxy.yml new file mode 100644 index 0000000..bd630fd --- /dev/null +++ b/.github/workflows/galaxy.yml @@ -0,0 +1,22 @@ +--- +name: Galaxy release + +# yamllint disable-line rule:truthy +on: + release: + types: ['created'] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: 'checkout git repo' + uses: actions/checkout@v4 + with: + submodules: true + fetch-depth: 0 + + - name: "Publish Ansible" + uses: ansible/ansible-publish-action@v1.0.0 + with: + api_key: "${{ secrets.GALAXY_API_KEY }}" diff --git a/.github/workflows/j2lint-check.yml b/.github/workflows/j2lint-check.yml new file mode 100644 index 0000000..00c7861 --- /dev/null +++ b/.github/workflows/j2lint-check.yml @@ -0,0 +1,22 @@ +--- +name: Jinja2 Linting check + +# yamllint disable-line rule:truthy +on: [push, pull_request] + +jobs: + build: + name: Jinja2 Linting + runs-on: ubuntu-latest + + steps: + - name: Checkout git repo + uses: actions/checkout@v4 + with: + submodules: true + fetch-depth: 0 + + - name: Run j2lint + uses: ansible-actions/j2lint-action@v0.0.1 + with: + target: "./" diff --git a/.github/workflows/yamllint-check.yml b/.github/workflows/yamllint-check.yml new file mode 100644 index 0000000..4dd2d82 --- /dev/null +++ b/.github/workflows/yamllint-check.yml @@ -0,0 +1,22 @@ +--- +name: Yamllint check + +# yamllint disable-line rule:truthy +on: [push, pull_request] + +jobs: + build: + name: Yamllint + runs-on: ubuntu-latest + + steps: + - name: Checkout git repo + uses: actions/checkout@v4 + with: + submodules: true + fetch-depth: 0 + + - name: Run yamllint + uses: ansible-actions/yamllint-action@v0.0.2 + with: + target: "./" diff --git a/.yamllint b/.yamllint new file mode 100644 index 0000000..e9713ae --- /dev/null +++ b/.yamllint @@ -0,0 +1,8 @@ +--- +extends: default + +rules: + # 170 chars should be enough, but don't fail if a line is longer + line-length: + max: 170 + level: warning diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/CHANGELOG.rst b/CHANGELOG.rst new file mode 100644 index 0000000..e69de29 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..a37705a --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 L3D + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..a096c18 --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +[![collection l3d.linux](https://ansible.l3d.space/svg/l3d.linux_ansible-collection_collection.svg)](https://galaxy.ansible.com/ui/repo/published/l3d.linux/) +[![Maintainance](https://ansible.l3d.space/svg/l3d.linux_maintainance_collection.svg)](https://ansible.l3d.space/#l3d.linux) +[![License](https://ansible.l3d.space/svg/l3d.linux_license_collection.svg)](LICENSE) + + Ansible Collection - l3d.linux +============================ + +This is the Ansible Collection ``l3d.linux``. A collection to to common linux tasks like installing linux packages. + +## Ansible Roles in l3d.linux +- [![l3d.linux.packages](https://ansible.l3d.space/svg/l3d.linux.packages_ansible-role.svg)](https://github.com/roles-ansible/ansible_role_packages.git) - Ansible role to install some base packages on your linux systems + +## Using this Collection +You can install the collection using ansible-galaxy by running: +```bash +ansible-galaxy collection install l3d.linux:1.0.0 +``` + +Remember you can to Upgrade to the latest version of the l3d.linux collection using the ``--upgrade`` parameter: +```bash +ansible-galaxy collection install l3d.linux --upgrade +``` + + +Or you could clone this collection in your local ansible project for example to ``collections/ansible_collections/l3d.linux/``. Make sure you checkout [git submodules](https://git-scm.com/docs/git-submodule) too. Example: +``` +# Clone git Repo with submodules to specified path +git clone --recursive https://github.com/roles-ansible/ansible_collection_linux.git collections/ansible_collections/l3d/linux/ + +# change directory +cd collections/ansible_collections/l3d.linux/ + +# optionally init git submodules +git submodule update --init --recursive + +# optionally install all requirements +ansible-galaxy collection install -r requirements.yml --upgrade +``` + +You can also list a collection in ``requirements.yml``: +```yaml +--- +collections: + - name: l3d.linux + version: ">=1.0.0" +``` + +## Include roles in your playbook +Example Playbook using the l3d.linux.package role: +```yaml +--- +- name: "Install NTP Server from collection l3d.linux" + hosts: ntp.example.com + roles: + - {role: l3d.linux.ntp, tags: ntp} + vars: +``` + +## Requirements +The roles in this collection using the ``community.general`` ansible Collections. + +### Example Requirements Installation: +```bash +# galaxy requirements +ansible-galaxy install -r requirements.yml --upgrade +``` diff --git a/changelog b/changelog new file mode 100644 index 0000000..52e7f38 --- /dev/null +++ b/changelog @@ -0,0 +1,2 @@ +--- +releases: {} diff --git a/galaxy.yml b/galaxy.yml new file mode 100644 index 0000000..d60e759 --- /dev/null +++ b/galaxy.yml @@ -0,0 +1,62 @@ +--- +### 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: l3d + +# The name of the collection. Has the same character restrictions as 'namespace' +name: linux + +# 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 (url) +# @nicks:irc/im.site#channel' +authors: + - L3D + + +### OPTIONAL but strongly recommended +# A short summary description of the collection +description: Ansible Collection for common linux tasks like package installation + +# 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: + - MIT + +# 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: + - packages + - linux + +# 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: + "community.general": ">=8.0.2" + +# The URL of the originating SCM repository +repository: https://github.com/roles-ansible/ansible_collection_linux.git + +# The URL to the homepage of the collection/project +homepage: https://ansible.l3d.space/ + +# 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 diff --git a/meta/runtime.yml b/meta/runtime.yml new file mode 100644 index 0000000..1c7d1bb --- /dev/null +++ b/meta/runtime.yml @@ -0,0 +1,2 @@ +--- +requires_ansible: '>=2.15' diff --git a/requirements.yml b/requirements.yml new file mode 100644 index 0000000..ba1697c --- /dev/null +++ b/requirements.yml @@ -0,0 +1,4 @@ +--- +collections: + - name: community.general + version: ">=8.0.2"