-
Notifications
You must be signed in to change notification settings - Fork 192
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SPIKE - Wazuh Ansible #1461
Comments
PlanThe proposal of this plan aims to outline in a general way the steps and considerations necessary to carry out the above proposed actions. It begins with the definition of the starting points for the Ansible project structure. Subsequently, it considers the creation of workflows in GitHub Actions, which will be aligned with the established key points. In addition, a plan will be developed for the Out-of-the-Box (OOB) code creation stage for each Wazuh component, ensuring that each part is consistent with the goals and constraints proposed in this Issue. Finally, improvements in test implementation and log validation are addressed, as well as adjustments to the documentation. Steps
|
Ansible Project StructureDefining the overall structure of the Ansible project:
ProposalsCurrent Structure:
Simpler Approach:
|
WorkflowsBoth deployment workflows, single node and all-in-one, will be required to be parameterizable. In particular, each Wazuh component must be allowed to be downloaded using packages instead of repositories, via a URL (or pre-signed URL, for Development packages). Additionally, there is a compatibility table. That is, a list of operating systems where both workflows must be executed. Wazuh Package URL Retrieval
URL parametrization
Compatibility Matrix with Operating Systems
Supported Operating Systems
|
OOB code for each Wazuh componentCertificate Generation
Create Roles/Playbooks to Deploy Each Wazuh Component1. Provisioning and Installation of Wazuh Indexer
2. Provisioning and Installation of Wazuh Server
3. Provisioning and Installation of Wazuh Dashboard
|
Test ImprovementsProposalsUtilize Ansible Lint in PR ChecksImplement linting using the ansible-lint action during pull request checks to ensure code quality. Implement Log Parsing Post-Execution
Implement Check and Diff Before Actual DeploymentUtilize the Example ansible-playbook playbook.yml --check --diff |
Adjustments to the DocumentationRelocate Documentation SectionIt would be more convenient to have this section on the Wazuh Agent documentation page.
Prerequisites
|
ConsiderationsAnsible RolesCompatibility Issues
Key Milestones and Changes in Role Syntax and Structure
How Many Times Has the Role Structure Changed?The core structure of roles has remained largely unchanged since its introduction in 2013. However, the ecosystem around roles has evolved:
ConclusionThe role syntax and structure have proven to be stable over the years, with only minor adjustments to accommodate new features and improve usability. This stability makes roles a reliable choice for long-term projects. However, keeping up with ecosystem changes (like collections and module updates) is essential to ensure compatibility. Hypothetical case: Multiple OS with multiple architectures
Assume a case in which Wazuh must be deployed using Ansible, with the particularity of having to install a given component on multiple hosts, with different operating systems and different architectures. For example, if a cluster of indexers must be installed on 3 different hosts. However, one of these hosts is Debian with AMD64 architecture, the other is a Debian with ARM64, and the remaining host is a RHEL with ARM64. If it is necessary to download the packages from Production or PreRelease, there should be no problem, since it is possible to download the appropriate versions without the need for pre-signed URLs. What will be necessary, however, is to set up a URL to download each package, making sure that it is the version compatible with the corresponding operating system. But on the other hand, if it is required to download the packages from Development, it will be necessary to have the pre-signed URLs for each needed package (debian_amd64, debian_arm64, and for rhel_arm64). Case Solution Proposals:
|
Implementation PlanThe initial implementation plan covers the following steps in a sequential manner:
|
Description
As part of the DevOps overhaul objective we need to conduct research, analyze alternatives, and design how to implement the following changes.
Implementation restrictions
Plan
The text was updated successfully, but these errors were encountered: