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 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
@@ -2,5 +2,5 @@
2
2
  bunny2fmc: Sync BunnyCDN edge IPs to Cisco FMC Dynamic Objects
3
3
  """
4
4
 
5
- __version__ = "1.0.8"
5
+ __version__ = "1.3.21"
6
6
  __author__ = "Kasper Elsborg -Wingmen"