18 lines
1000 B
YAML
18 lines
1000 B
YAML
version: 1
|
|
name: cf_zones
|
|
description: 列出 Cloudflare 账号下的 Zone
|
|
steps:
|
|
- id: list_zones
|
|
action: ssh.exec
|
|
on_fail: stop
|
|
with:
|
|
target: hwsg
|
|
command: "CF_ACCOUNT_ID=${env_cf_account_id} CF_API_TOKEN=${env_cf_api_token} python3 -c \"import os,requests,json; acct=os.getenv('CF_ACCOUNT_ID',''); token=os.getenv('CF_API_TOKEN',''); email=os.getenv('CF_API_EMAIL',''); headers={'Authorization':'Bearer '+token,'Content-Type':'application/json'}; url='https://api.cloudflare.com/client/v4/zones'; params={'account.id':acct,'per_page':200}; resp=requests.get(url, headers=headers, params=params, timeout=15); data=resp.json(); zones=[{'name':z.get('name'), 'id':z.get('id')} for z in data.get('result',[])]; print(json.dumps({'success':data.get('success',False),'zones':zones,'errors':data.get('errors',[])}, ensure_ascii=False))\""
|
|
- id: assert
|
|
action: assert.json
|
|
on_fail: stop
|
|
with:
|
|
source_step: list_zones
|
|
required_paths:
|
|
- "success"
|