Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
150 changes: 141 additions & 9 deletions tools/Ansible/README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,155 @@
# Ansible

![Ansible Logo](../logos/ansible.svg)
<img src="https://logo.svgcdn.com/logos/ansible.svg" alt="Ansible Logo" width="150" />

Comment on lines 1 to +4
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Use relative logo path per coding guidelines.

The logo reference must use a relative path (../logos/ansible.svg) instead of an absolute CDN URL, as specified in the coding guidelines for tool READMEs.

Apply this diff:

-<img src="https://logo.svgcdn.com/logos/ansible.svg" alt="Ansible Logo" width="150" />
+<img src="../logos/ansible.svg" alt="Ansible Logo" width="150" />
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
# Ansible
![Ansible Logo](../logos/ansible.svg)
<img src="https://logo.svgcdn.com/logos/ansible.svg" alt="Ansible Logo" width="150" />
# Ansible
<img src="../logos/ansible.svg" alt="Ansible Logo" width="150" />
🤖 Prompt for AI Agents
In tools/Ansible/README.md around lines 1 to 4, the README uses an absolute CDN
URL for the Ansible logo; replace the img src value with the relative path
../logos/ansible.svg (keep alt and width attributes unchanged) so the logo
follows the project's coding guidelines for relative asset references.




## Overview

Agentless automation tool for configuration management, application deployment, and task automation.
Ansible is an open-source automation platform used for configuration management, application deployment, orchestration, and provisioning. It allows you to automate repetitive tasks using simple, human-readable YAML files called Playbooks.
Ansible provides agentless automation by connecting to remote systems via SSH (for Linux/macOS hosts) or WinRM (for Windows hosts).

## Key Features
## Why Ansible?

- Feature 1
- Feature 2
- Feature 3
- Simple and human-readable
- Agentless
- Scalable from one machine to thousands
- Large module ecosystem
- Cloud provider integrations (AWS, Azure, GCP)
Comment on lines +13 to +19
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Rename section to match required structure.

Per the retrieved learnings and coding guidelines, this section should be named "Key Features" rather than "Why Ansible?" to maintain consistency across tool READMEs.

Apply this diff:

-## Why Ansible?
+## Key Features
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## Why Ansible?
- Feature 1
- Feature 2
- Feature 3
- Simple and human-readable
- Agentless
- Scalable from one machine to thousands
- Large module ecosystem
- Cloud provider integrations (AWS, Azure, GCP)
## Key Features
- Simple and human-readable
- Agentless
- Scalable from one machine to thousands
- Large module ecosystem
- Cloud provider integrations (AWS, Azure, GCP)
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

15-15: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
In tools/Ansible/README.md around lines 13 to 19, the section header "Why
Ansible?" must be renamed to "Key Features" to match the repository's README
structure; edit the markdown header line so the title reads "## Key Features"
and keep the existing bullet list unchanged.


## Key Concepts

- Inventory
List of hosts and groups Ansible manages.
- Modules
Units of work (e.g., apt, yum, service, copy, win_chocolatey).
- Playbook
YAML file defining tasks to run on hosts.
- Role
Reusable structure for organizing playbooks.
- Control Node
Machine where Ansible is installed/runs.
- Managed Nodes
Machines Ansible operates on.

## Getting Started
### Installation and basic usage instructions:

### Ubuntu / Debian

`sudo apt update`
`sudo apt install ansible -y`

### CentOS / RHEL / Fedora

`sudo dnf install ansible -y`

### Install on macOS
Using Homebrew (recommended):

`brew update`

`brew install ansible`

### Verify installation:

`ansible --version`

### Install on Windows
Ansible does not run natively on Windows as a control node.
However, use Windows Subsystem for Linux (WSL) (Recommended) and run the commands above.

## Basic Usage

Test connectivity to localhost (if supported):

`ansible localhost -m ping`

Run a simple command:

`ansible all -i inventory.ini -m shell -a "uptime"`

## Working with Inventory
inventory.ini

```
[webservers]
192.168.1.10
192.168.1.11
[dbservers]
db01 ansible_host=192.168.1.20 ansible_user=root
```
Comment on lines +73 to +83
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add language specification to code blocks.

Multiple code blocks are missing language specifications, violating MD040 linting rules. The inventory block at line 76 should specify ini as the language.

Apply this diff:

 ## Working with Inventory
 inventory.ini
 
-```
+```ini
 [webservers]
 192.168.1.10
 192.168.1.11
🤖 Prompt for AI Agents
In tools/Ansible/README.md around lines 73 to 83, the inventory code block is
missing a language spec which violates MD040; update the fenced code block
starting at line ~76 to use an ini language tag (i.e., replace the opening ```
with ```ini) and ensure the inventory content remains the same and correctly
indented so the block becomes
```ini\n[webservers]\n192.168.1.10\n192.168.1.11\n\n[dbservers]\ndb01
ansible_host=192.168.1.20 ansible_user=root\n``` (only change is adding the ini
language identifier on the opening fence).

YAML Inventory (optional)

```
all:
hosts:
local:
ansible_connection: local
```
Comment on lines +84 to +91
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Specify language for YAML inventory block.

The YAML inventory code block at line 86 is missing the language tag.

Apply this diff:

 YAML Inventory (optional)
 
-```
+```yaml
 all:
   hosts:
     local:
       ansible_connection: local
🤖 Prompt for AI Agents
In tools/Ansible/README.md around lines 84 to 91 the fenced code block for the
YAML inventory is missing a language tag; update the opening fence from ``` to
```yaml so the block starts with ```yaml and leave the content unchanged to
enable proper syntax highlighting.

## Running Ad-Hoc Commands
Check disk space

`ansible all -m shell -a "df -h"`

Install a package

`ansible webservers -m apt -a "name=nginx state=present" --become`

## Writing Your First Playbook

```
---
- name: Install NGINX on web servers
hosts: webservers
become: yes
tasks:
- name: Install nginx
apt:
name: nginx
state: present
update_cache: yes
- name: Ensure nginx is running
service:
name: nginx
state: started
enabled: yes
```
Comment on lines +101 to +120
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Specify language for Ansible playbook block.

The playbook code block at line 103 is missing the language tag. It should be yaml.

Apply this diff:

 ## Writing Your First Playbook
 
-```
+```yaml
 ---
 - name: Install NGINX on web servers
   hosts: webservers
🤖 Prompt for AI Agents
In tools/Ansible/README.md around lines 101 to 120, the Ansible playbook code
block is missing a language tag; update the fenced code block opening to ```yaml
so the snippet is properly highlighted (replace the existing ``` with ```yaml
and keep the playbook content unchanged).


Run the playbook:

`ansible-playbook -i inventory.ini site.yml`

## Common Use Cases
- Server provisioning
- Installing and configuring applications
- CI/CD automation
- Cloud resource provisioning (AWS/GCP/Azure)
- User/ servers and permission management
- Patching and system updates

## Troubleshooting
Check connection issues:

`ansible all -m ping -vvv`

Check WinRM configuration for Windows:

`ansible windows -m win_ping`

Dry run a playbook:

`ansible-playbook site.yml --check`

Syntax check:

`ansible-playbook site.yml --syntax-check`

Installation and basic usage instructions.

## Resources

- [Official Website](https://example.com)
- [Documentation](https://docs.example.com)
- [Ansible Documentation](https://docs.ansible.com)
- [GitHub Repository](https://github.com/example/Ansible)
8 changes: 8 additions & 0 deletions tools/Docker/Docker-Compose/DB/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM alpine:latest

RUN mkdir /data

VOLUME ["/data"]

CMD ["sleep", "infinity"]

Loading