YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
Azure Operator Claude
Trợ thủ quản lý toàn bộ tài khoản Azure anh được uỷ quyền. Anh đưa danh sách acc + proxy, ra lệnh; agent dùng Camoufox+proxy (hoặc BitBrowser+proxy) login acc → lấy token ARM → gọi Azure REST API làm việc: kiểm kê, deploy model, quota, quản lý resource, gán role, billing…
Bộ não chính = Claude Code (em) gọi CLI này qua chat. Có thêm chế độ chạy độc lập gắn model backup (Phase 5, chỉ khi em gặp sự cố).
Nền tảng dùng lại nguyên khối từ
azure-camoufox-totp(browser+proxy login, ARM token, ARM REST + LRO, inventory, deploy). Các file đó copy nguyên, không sửa bản gốc.
Cài
pip install -r requirements.txt
python -m camoufox fetch # tải Firefox antidetect (lần đầu)
Điền accounts.txt + proxies.txt (local, không upload — xem template trong 2 file).
Chạy
python op.py verbs # xem catalog verb
python op.py whoami --acc <email|khớp> # danh tính + tenant
python op.py subs --acc <email> # list subscription
python op.py inventory --acc <email> # kiểm kê -> ket_qua/<date>/<slug>_inventory.txt
python op.py quota --acc <email> --sub <id> --region eastus
Verb ghi mặc định dry-run; thêm --go mới chạy thật:
python op.py create-rg --acc <email> --sub <id> --rg demo --loc eastus # [DRY]
python op.py create-rg --acc <email> --sub <id> --rg demo --loc eastus --go # chạy thật
Cờ chung
--acc (email hoặc chuỗi khớp 1 dòng accounts.txt) · --sub (id/tên) · --proxy ·
--twofa auto|totp|mailcode · --go (chạy verb ghi) · args riêng của từng verb.
An toàn (áp dụng đồng loạt)
- Verb ghi: dry-run trừ khi
--go. - Xoá/deallocate node GPU/ML (ML compute, VM/VMSS GPU, BatchAI): dù có
--govẫn phải gõ đúng tên để xác nhận. - Thẻ / khoá / billing / API key: ghi ra file
ket_qua/<date>/<slug>_<name>.txt, chat/log chỉ hiện đường dẫn — không lộ nội dung. - Mỗi lần chạy ghi 1 dòng
ket_qua/audit.log(đã redact secret).
Thêm site đọc OTP (mailcode domain khác — "cắm nóng")
Mặc định tool gốc chỉ đọc code ở mail.agapia.fr. Acc có mailcode domain khác (vd
plastinik@runcubesapps.id đọc ở generator.email) → cắm thêm không sửa code gốc:
- Site kiểu "path = full địa chỉ" (
https://<site>/<addr>): thêm 1 dòng vàomail_routes.txt:
→ login gặp mailcoderuncubesapps.id = generator.email@runcubesapps.idsẽ mởgenerator.email/<addr>ngay trong Camoufox (chung proxy+fingerprint), poll DOM, lấy mã OTP mới. Sửa file là nhận ngay, không restart. - Catch-all: bỏ comment dòng
* = generator.email→ mọi domain lạ đọc qua site đó. - Site URL/DOM lạ (chia user/domain, list qua selector riêng): thêm 1 entry data vào
mail_providers.py::PROVIDERS(urltemplate{addr}/{user}/{domain},message_sel,code_rx) rồi trỏ route tới tên đó. Cơ chế:mail_providers.install()monkeypatchot.mail_readable/ot.get_2fa_codelúc chạy — fileazure_tool.py/login.pykhông đổi trên đĩa.
Anh chỉ cần nói "site X đọc ở trang Y" là em cắm entry/route trong ~30 giây.
Token
Session tái dùng ~55'. Cascade: reuse (session còn hạn) → refresh-token (mint lại không mở browser, Phase 4) → full login (browser+proxy). Gặp 401 giữa chừng tự login lại 1 lần.
Bảo mật
accounts.txt, proxies.txt, ket_qua/, *_session.json, *.txt không bao giờ upload
(xem .gitignore/.hfignore). Secret không đi qua command line — luôn đọc từ file local.
Verb (tóm tắt)
- G1 kiểm kê:
whoamisubsresourcesinventorybilling(file) - G2 Foundry/AI:
list-deploymentsquotakeys(file)deploy-model(W) - G3 resource:
list-rgcreate-rg(W)delete-rg(W!)delete-resource(W!)move-resource(W)costtag(W) - G4 quyền/billing:
role-assignmentslist-spsub-stateassign-role(W)transfer-billing(walkthrough riêng)
(W)=ghi, dry-run trừ khi --go. (W!)=ghi + gõ tên xác nhận nếu chạm GPU/ML.