59 lines
1.8 KiB
Markdown
59 lines
1.8 KiB
Markdown
# WIF to Ansible Inventory Converter
|
|
|
|
This tool converts **Workload Intake Form (WIF)** Excel documents into **Ansible Inventory** YAML files.
|
|
|
|
## Features
|
|
- **Robust Excel Parsing**: Automatically handles shifted cells and ignores hidden headers/rows/columns.
|
|
- **Server Filtering**: Only generates flows for servers explicitly defined in the 'Servers' tab.
|
|
- **Strict Validation**: Dropped flows are reported in the console output.
|
|
|
|
## How to Run
|
|
|
|
### Option 1: Standalone Executable (Windows)
|
|
No Python installation required.
|
|
|
|
1. Navigate to the `dist` folder.
|
|
2. Run the executable from the command line, providing your WIF Excel file as an argument:
|
|
|
|
```powershell
|
|
.\dist\wif2ansible.exe "Path\To\Your_WIF.xlsx"
|
|
```
|
|
|
|
The inventory file (e.g., `inventory_YYYY-MM-DD_HHMM.yml`) will be generated in the current directory.
|
|
|
|
**Optional: Specify Output File**
|
|
```powershell
|
|
.\dist\wif2ansible.exe "Path\To\Your_WIF.xlsx" -o "my_inventory.yml"
|
|
```
|
|
|
|
### Option 2: Run via Python Source
|
|
If you are developing or prefer running the raw script:
|
|
|
|
1. **Install Requirements**:
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
2. **Run Module**:
|
|
```bash
|
|
python -m wif2ansible.main "Path\To\Your_WIF.xlsx"
|
|
```
|
|
|
|
## Requirements for WIF Excel File
|
|
- Must contain a **Servers** tab (e.g., "B.Server Info") with columns for `Reference`, `Platform`, and `IP Address`.
|
|
- Must contain **Flow** tabs (e.g., "F.Dataflow - Application") with headers for `Source`, `Destination`, and `Port`.
|
|
- **Hidden rows and columns are strictly ignored**. Ensure valid data is visible.
|
|
|
|
## Output
|
|
Generates a YAML file compatible with Ansible:
|
|
```yaml
|
|
all:
|
|
hosts:
|
|
192.168.1.10:
|
|
ansible_connection: winrm
|
|
flows:
|
|
- dest: 10.0.0.5
|
|
ports: [80, 443]
|
|
protocol: tcp
|
|
```
|