bunny2fmc 1.0.8__py3-none-any.whl → 1.3.21__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- README.md +119 -0
- bunny2fmc/__init__.py +1 -1
- bunny2fmc/cli.py +760 -120
- bunny2fmc/config.py +152 -1
- bunny2fmc/setup_helper.py +31 -0
- bunny2fmc/sync_engine.py +262 -56
- bunny2fmc-1.3.21.dist-info/METADATA +152 -0
- bunny2fmc-1.3.21.dist-info/RECORD +15 -0
- {bunny2fmc-1.0.8.dist-info → bunny2fmc-1.3.21.dist-info}/WHEEL +1 -1
- guide/INSTALL.md +208 -0
- install.sh +54 -0
- requirements.txt +3 -0
- bunny2fmc-1.0.8.dist-info/METADATA +0 -176
- bunny2fmc-1.0.8.dist-info/RECORD +0 -10
- {bunny2fmc-1.0.8.dist-info → bunny2fmc-1.3.21.dist-info}/entry_points.txt +0 -0
- {bunny2fmc-1.0.8.dist-info → bunny2fmc-1.3.21.dist-info}/licenses/LICENSE +0 -0
- {bunny2fmc-1.0.8.dist-info → bunny2fmc-1.3.21.dist-info}/top_level.txt +0 -0
README.md
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# bunny2fmc
|
|
2
|
+
|
|
3
|
+
Automatically sync BunnyCDN IP ranges to Cisco FMC Dynamic Objects.
|
|
4
|
+
|
|
5
|
+
## Quick Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
sudo apt install pipx
|
|
9
|
+
pipx install bunny2fmc
|
|
10
|
+
bunny2fmc --setup
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
That's it! Answer the setup questions and you're done.
|
|
14
|
+
|
|
15
|
+
During `bunny2fmc --setup` you'll be asked for:
|
|
16
|
+
- FMC hostname/IP
|
|
17
|
+
- FMC username/password (stored in OS keyring)
|
|
18
|
+
- Dynamic Object name
|
|
19
|
+
- IPv6 enable (y/n)
|
|
20
|
+
- Sync interval (minutes)
|
|
21
|
+
- Bunny IPv4 API URL (default: https://bunnycdn.com/api/system/edgeserverlist)
|
|
22
|
+
- Bunny IPv6 API URL (default: https://bunnycdn.com/api/system/edgeserverlist/ipv6)
|
|
23
|
+
|
|
24
|
+
## What it does
|
|
25
|
+
|
|
26
|
+
**bunny2fmc** fetches the latest BunnyCDN edge server IP addresses and updates a Dynamic Object in Cisco FMC. No deployment needed - changes are immediate.
|
|
27
|
+
|
|
28
|
+
### Features
|
|
29
|
+
|
|
30
|
+
- 🔄 **Automatic sync** - Fetch latest IPs from BunnyCDN API
|
|
31
|
+
- ⚙️ **Configurable endpoints** - Override Bunny IPv4/IPv6 API URLs when needed
|
|
32
|
+
- 🔐 **Secure credentials** - Stored in OS keyring
|
|
33
|
+
- ⏰ **Scheduled execution** - Run via cron (daily/hourly/custom)
|
|
34
|
+
- 📊 **Smart updates** - Only changes what's needed
|
|
35
|
+
- 📝 **Logging** - Track all sync activity
|
|
36
|
+
|
|
37
|
+
## Prerequisites
|
|
38
|
+
|
|
39
|
+
Before running `bunny2fmc --setup`, create a dedicated API user in FMC:
|
|
40
|
+
|
|
41
|
+
1. **FMC → System → Users → Add User**
|
|
42
|
+
2. Settings:
|
|
43
|
+
- Username: `bunny2fmc_sync`
|
|
44
|
+
- Password: [choose strong password - save it!]
|
|
45
|
+
- Role: **Network Admin** (or Maintenance User)
|
|
46
|
+
- Authentication: **Local**
|
|
47
|
+
3. Click **Save**
|
|
48
|
+
|
|
49
|
+
**Important:** Don't use your admin account - API login logs out the web UI session!
|
|
50
|
+
|
|
51
|
+
## Commands
|
|
52
|
+
|
|
53
|
+
| Command | Description |
|
|
54
|
+
|---------|-------------|
|
|
55
|
+
| `bunny2fmc --setup` | Interactive configuration |
|
|
56
|
+
| `bunny2fmc --run` | Run sync now |
|
|
57
|
+
| `bunny2fmc --start` | Start scheduled sync (cron) |
|
|
58
|
+
| `bunny2fmc --stop` | Stop scheduled sync |
|
|
59
|
+
| `bunny2fmc --config` | Show configuration |
|
|
60
|
+
| `bunny2fmc --logs` | View recent logs |
|
|
61
|
+
| `bunny2fmc --logs follow` | Follow logs in real-time |
|
|
62
|
+
| `bunny2fmc --clear` | Remove all config and credentials |
|
|
63
|
+
| `bunny2fmc --help` | Show all commands |
|
|
64
|
+
|
|
65
|
+
## File Locations
|
|
66
|
+
|
|
67
|
+
All files are stored in `~/bunny2fmc/`:
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
~/bunny2fmc/
|
|
71
|
+
├── config.json # Configuration
|
|
72
|
+
├── logs/ # Log files
|
|
73
|
+
└── guide/ # Documentation
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Troubleshooting
|
|
77
|
+
|
|
78
|
+
**pipx not found:**
|
|
79
|
+
```bash
|
|
80
|
+
pipx ensurepath
|
|
81
|
+
source ~/.bashrc
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**bunny2fmc not found:**
|
|
85
|
+
```bash
|
|
86
|
+
export PATH="$PATH:$HOME/.local/bin"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Can't connect to FMC:**
|
|
90
|
+
- Check firewall allows port 443
|
|
91
|
+
- Verify FMC hostname/IP is correct
|
|
92
|
+
- Test: `curl -k https://fmc.company.com/api/fmc_platform/v1/info`
|
|
93
|
+
|
|
94
|
+
**Upgrade:**
|
|
95
|
+
```bash
|
|
96
|
+
pipx upgrade bunny2fmc
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Uninstall:**
|
|
100
|
+
```bash
|
|
101
|
+
pipx uninstall bunny2fmc
|
|
102
|
+
rm -rf ~/bunny2fmc/
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Requirements
|
|
106
|
+
|
|
107
|
+
- Linux (Ubuntu/Debian recommended)
|
|
108
|
+
- Python 3.8+
|
|
109
|
+
- Cisco FMC with API access
|
|
110
|
+
- Network access to FMC and internet
|
|
111
|
+
|
|
112
|
+
## Links
|
|
113
|
+
|
|
114
|
+
- **PyPI:** https://pypi.org/project/bunny2fmc/
|
|
115
|
+
- **GitHub:** https://github.com/IronKeyVault/Bunny_Sync_FMC
|
|
116
|
+
|
|
117
|
+
## License
|
|
118
|
+
|
|
119
|
+
MIT License - see LICENSE file.
|
bunny2fmc/__init__.py
CHANGED