Merge pull request #61 from corvus-migratorius/role-perccli

add perccli role
This commit is contained in:
Fogucoco
2025-12-19 17:27:32 +03:00
committed by GitHub
11 changed files with 157 additions and 1 deletions

View File

@@ -21,6 +21,7 @@
- [nginx](roles/nginx/README.md)
- [nginx_docker](roles/nginx_docker/README.md)
- [node_exporter](roles/node_exporter/README.md)
- [perccli](roles/perccli/README.md)
- [platform1c](roles/platform1c/README.md)
- [postgres1c](roles/postgres1c/README.md)
- [prometheus](roles/prometheus/README.md)

View File

@@ -1,7 +1,7 @@
---
namespace: genlab
name: common
version: 0.31.0
version: 0.32.0
readme: README.md
authors:
- Alexander Gorelyshev (corvus-migratorius@proton.me)

27
roles/perccli/README.md Normal file
View File

@@ -0,0 +1,27 @@
genlab.perccli
=========
Install perccli tool for Dell HBA and RAID adapters.
Requirements
------------
None
Role Variables
--------------
Example Playbook
----------------
See `molecule/default/converge.yml`
License
-------
MIT
Author Information
------------------
corvus-migratorius@proton.me

View File

@@ -0,0 +1,4 @@
---
perccli_deb_name: perccli_007.2616.0000.0000_all.deb
perccli_version: "7.2616.0"
perccli_url: https://dl.dell.com/FOLDER11213122M/1/PERCCLI_{{ perccli_version }}_Linux.tar.gz

View File

@@ -0,0 +1 @@
---

View File

@@ -0,0 +1,15 @@
---
galaxy_info:
role_name: perccli
namespace: genlab
author: "Alexander Gorelyshev"
company: "Genlab, LLC"
description: "Install perccli tool for Dell HBA and RAID adapters."
license: "GPL-2.0-or-later"
min_ansible_version: "2.1"
platforms:
- name: "Ubuntu"
versions: ["jammy", "noble"]
dependencies: []

View File

@@ -0,0 +1,6 @@
---
- name: Converge
hosts: all
roles:
- role: genlab.common.perccli
perccli_versionsion: "7.2616.0"

View File

@@ -0,0 +1,27 @@
---
dependency:
name: galaxy
driver:
name: docker
platforms:
- name: ubuntu
image: geerlingguy/docker-${MOLECULE_DISTRO:-ubuntu2404}-ansible:latest
pre_build_image: true
command: ${MOLECULE_DOCKER_COMMAND:-""}
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:rw
cgroupns_mode: host
privileged: true
provisioner:
name: ansible
verifier:
name: ansible
lint: |
set -e
yamllint .
ansible-lint .

View File

@@ -0,0 +1,23 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
# https://github.com/ansible/molecule/issues/3587#issuecomment-1158650179
- name: "Include default vars"
ansible.builtin.include_vars:
dir: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') }}/defaults/"
extensions: ['yml']
- name: "Test perccli output"
register: perccli_version_get
changed_when: false
failed_when: '"PercCli SAS Customization Utility" not in perccli_version_get.stdout | trim'
ansible.builtin.command:
cmd: "perccli help | grep Ver."
- name: "Assert perccli version correctness"
ansible.builtin.assert:
that: "perccli_version in perccli_version_get.stdout"
success_msg: "Expected perccli version is available: '{{ perccli_version }}'"
fail_msg: "Expected version '{{ perccli_version }}'; version string is '{{ perccli_version_get.stdout | trim }}'"

View File

@@ -0,0 +1,51 @@
---
- name: "Check prior perccli installation"
block:
- name: "Test perccli output"
register: perccli_version_get
changed_when: false
failed_when: '"PercCli SAS Customization Utility" not in perccli_version_get.stdout | trim'
ansible.builtin.command:
cmd: "perccli help | grep Ver."
- name: "Assert perccli version correctness"
ansible.builtin.assert:
that: "perccli_version in perccli_version_get.stdout"
success_msg: "Expected perccli version is available: '{{ perccli_version }}'"
fail_msg: "Expected version '{{ perccli_version }}'; version string is '{{ perccli_version_get.stdout | trim }}'"
rescue:
- name: "Download and unarchive a perccli tarball"
ansible.builtin.unarchive:
src: "{{ perccli_url }}"
remote_src: true
dest: "/tmp"
group: root
- name: "Install perccli using dpkg"
changed_when: false
ansible.builtin.command:
cmd: dpkg -i /tmp/{{ perccli_deb_name }}
- name: "Set perccli executable permissions"
ansible.builtin.file:
path: /opt/MegaRAID/perccli/perccli64
owner: root
group: root
mode: "0770"
- name: "Link perccli to /usr/sbin"
ansible.builtin.file:
state: link
src: /opt/MegaRAID/perccli/perccli64
dest: /usr/sbin/perccli
# - name: "Install perccli"
# changed_when: false
# ansible.builtin.command:
# cmd: >-
# install /tmp/PERCCLI_{{ perccli_versions }}_Linux/perccli64 /usr/sbin/perccli
# -o root
# -g root
# -m 0770

View File

@@ -0,0 +1 @@
---