راهنمای رابط خط فرمان آریانت
راهنمای جامع برای استفاده از رابط خط فرمان (CLI) آریانت برای مدیریت منابع ابری از طریق ترمینال.
نصب و راه اندازی
- macOS
- Linux
- Windows
گزینه 1: Homebrew (توصیه شده)
brew install ariaservice/tap/arianet
گزینه 2: دانلود باینری از پیش ساختهشده
آخرین نسخه را از صفحه Releases در GitHub دانلود کنید:
chmod +x arianet
sudo mv arianet /usr/local/bin/
# تأیید نصب
arianet version
گزینه 3: ساخت از منبع
git clone https://github.com/ariaservice/arianet-cli.git
cd arianet-cli
go build -o arianet ./cmd/main.go
sudo mv arianet /usr/local/bin/
گزینه 1: دانلود باینری از پیش ساختهشده
آخرین نسخه را از صفحه Releases در GitHub دانلود کنید:
chmod +x arianet
sudo mv arianet /usr/local/bin/
# تأیید نصب
arianet version
گزینه 2: ساخت از منبع
# نصب Go 1.20+ (اگر قبلاً نصب نشده باشد)
# Ubuntu/Debian:
sudo apt-get install golang-go
# RHEL/CentOS:
sudo yum install golang
# سپس ساخت:
git clone https://github.com/ariaservice/arianet-cli.git
cd arianet-cli
go build -o arianet ./cmd/main.go
sudo mv arianet /usr/local/bin/
گزینه 1: دانلود باینری از پیش ساختهشده
آخرین نسخه .exe را از صفحه Releases در GitHub دانلود کنید:
-
فایل
arianet-windows-amd64.exe(یاarianet-windows-386.exeبرای 32-بیت) را دانلود کنید -
نام آن را به
arianet.exeتغییر دهید -
دایرکتوری حاوی
arianet.exeرا به متغیر محیطPATHاضافه کنید:- روی This PC یا My Computer کلیک راست کنید → Properties
- روی Advanced system settings کلیک کنید → Environment Variables
- تحت System variables، روی Path کلیک کنید → Edit
- دایرکتوری حاوی
arianet.exeرا اضافه کنید - روی OK کلیک کنید
-
تأیید نصب:
arianet version
گزینه 2: ساخت از منبع
نیاز به Go 1.20+ و Git دارد.
git clone https://github.com/ariaservice/arianet-cli.git
cd arianet-cli
go build -o arianet.exe .\cmd\main.go
سپس دایرکتوری حاوی arianet.exe را به PATH اضافه کنید (مانند گزینه 1).
تنظیم اولیه
# تنظیم حساب شما
arianet login
# یا استفاده از توکن مستقیماً
arianet auth token set YOUR_API_TOKEN
# تأیید احراز هویت
arianet whoami
دستورات اساسی
احراز هویت
ورود به حساب
arianet login
# شما را به پخش مرورگر برای احراز هویت هدایت میکند
خارج شدن
arianet logout
بررسی کاربر جاری
arianet whoami
# خروجی:
# {
# "id": 1,
# "username": "john_doe",
# "email": "john@example.com"
# }
مدیریت توکنها
# تعیین توکن
arianet auth token set YOUR_API_TOKEN
# نمایش توکن جاری
arianet auth token show
# حذف توکن
arianet auth token delete
سرورها
فهرست تمام سرورها
arianet servers list
# خروجی (فرمت جدول):
# ID NAME STATUS IP REGION OS
# 1 server-1 active 185.10.10.10 ir-tehran-1 Ubuntu 22.04
# 2 web-server active 185.20.20.20 ir-tehran-1 Ubuntu 20.04
# 3 db-server inactive 185.30.30.30 ir-isfahan-1 Debian 12
دریافت جزئیات سرور
arianet servers get <id>
# مثال:
arianet servers get 1
# خروجی (فرمت JSON):
# {
# "id": 1,
# "name": "server-1",
# "hostname": "server-1.arianet.io",
# "ip": "185.10.10.10",
# "status": "active",
# "os": "Ubuntu 22.04 LTS",
# "vcpu": 2,
# "ram": 2048,
# "disk": 50,
# "protected": true,
# "uptime_percentage": 99.95
# }
ایجاد سرور جدید
arianet servers create \
--name web-server-1 \
--os ubuntu-22.04 \
--plan shared-2c-2g \
--region ir-tehran-1 \
--ssh-keys 1,2
# خروجی:
# درخواست ایجاد سرور ارسال شد
# ID سرور جدید: 45
حذف سرور
arianet servers delete <id>
# مثال با تأیید:
arianet servers delete 45 --confirm
تغییر نام سرور
arianet servers rename <id> --name new-name
# مثال:
arianet servers rename 1 --name production-web-01
حفاظت سرور
# فعالسازی حفاظت
arianet servers protect <id> --enable
# غیرفعالسازی حفاظت
arianet servers protect <id> --disable
عملیات مدیریت سرویس
راهاندازی مجدد
arianet servers reboot <id>
# مثال:
arianet servers reboot 1
# Rebooting server...
# ✓ سرور با موفقیت راهاندازی مجدد شد
خاموشی
arianet servers shutdown <id>
# مثال:
arianet servers shutdown 2
روشن کردن
arianet servers power-on <id>
# مثال:
arianet servers power-on 3
نصب مجدد سیستمعامل
arianet servers reinstall <id> \
--os ubuntu-22.04 \
--ssh-keys 1,2
# مثال:
arianet servers reinstall 1 --os ubuntu-22.04
کلیدهای SSH
فهرست کلیدهای SSH
arianet ssh-keys list
# خروجی:
# ID NAME FINGERPRINT
# 1 work-machine a1:b2:c3:d4:e5:f6:g7:h8
# 2 home-machine x1:y2:z3:a4:b5:c6:d7:e8
# 3 backup-key m1:n2:o3:p4:q5:r6:s7:t8
اضافه کردن کلید SSH
arianet ssh-keys create \
--name my-key \
--public-key "$(cat ~/.ssh/id_rsa.pub)"
# مثال:
arianet ssh-keys create --name work-key --public-key "ssh-rsa AAAAB3..."
# ✓ کلید SSH با موفقیت اضافه شد (ID: 10)
حذف کلید SSH
arianet ssh-keys delete <id>
# مثال:
arianet ssh-keys delete 5
دیوار آتش (Firewall)
فهرست قوانین دیوار آتش
arianet firewalls list
# یا برای سرور خاص:
arianet firewalls list --server-id <id>
# خروجی:
# ID PROTOCOL PORT SOURCE ACTION
# 1 tcp 80 0.0.0.0/0 allow
# 2 tcp 443 0.0.0.0/0 allow
# 3 tcp 3306 192.168.1.0/24 allow
اضافه کردن قانون
arianet firewalls add-rule \
--firewall-id <id> \
--protocol tcp \
--port 3306 \
--source 192.168.1.0/24 \
--action allow
# مثال:
arianet firewalls add-rule --firewall-id 1 --protocol tcp --port 3306 --source 192.168.1.0/24 --action allow
# ✓ قانون با موفقیت اضافه شد
حذف قانون
arianet firewalls remove-rule --firewall-id <id> --rule-id <rule_id>
موجودی و تراکنشها
نمایش موجودی
arianet balance
# خروجی:
# موجودی: 50,000 تومان
# استفاده شده این ماه: 15,000 تومان
# اعتبار باقیمانده: 35,000 تومان
سابقه تراکنشها
arianet transactions list
# یا با فیلتر:
arianet transactions list --type debit --limit 20
# خروجی:
# ID TYPE AMOUNT DESCRIPTION DATE
# 1001 debit 5000 سرور ماهانه 2024-01-01
# 1002 credit 10000 تاپآپ موجودی 2024-01-05
کاتالوگ
فهرست مناطق
arianet regions list
# خروجی:
# ID NAME COUNTRY
# ir-tehran-1 تهران IR
# ir-isfahan-1 اصفهان IR
# de-frankfurt-1 فرانکفورت DE
# us-new-york-1 نیویورک US
فهرست نقشههای قیمتی
arianet plans list
# خروجی:
# ID NAME vCPU RAM DISK PRICE/Month
# shared-1c-512m پایه 1 512MB 20GB 1,000 IRR
# shared-2c-2g استاندارد 2 2GB 50GB 3,500 IRR
# shared-4c-4g حرفهای 4 4GB 100GB 7,000 IRR
# shared-8c-8g بسیار قوی 8 8GB 200GB 14,000 IRR
فهرست سیستمعاملها
arianet operating-systems list
# خروجی:
# ID NAME CATEGORY
# ubuntu-22.04 Ubuntu 22.04 LTS Linux
# ubuntu-20.04 Ubuntu 20.04 LTS Linux
# debian-12 Debian 12 Linux
# rocky-9 Rocky Linux 9 Linux
# centos-7 CentOS 7 Linux
فرمتهای خروجی
فرمت جدول (پیشفرض)
arianet servers list
فرمت JSON
arianet servers list --output json
# یا
arianet servers list -o json
فرمت YAML
arianet servers list --output yaml
# یا
arianet servers list -o yaml
فرمت CSV
arianet servers list --output csv
# یا
arianet servers list -o csv
کاربرد در اسکریپتها
پردازش جیسون با jq
# دریافت تمام آيپیهای فعال
arianet servers list -o json | jq '.[] | select(.status=="active") | .ip'
# شمارش سرورهای فعال
arianet servers list -o json | jq '[.[] | select(.status=="active")] | length'
# دریافت نام و IP سرورها
arianet servers list -o json | jq '.[] | {name, ip}'
حلقه سازی بر روی سرورها
# راهاندازی مجدد تمام سرورها
arianet servers list -o json | jq '.[] | .id' | while read id; do
arianet servers reboot $id
echo "سرور $id راهاندازی مجدد شد"
done
ذخیره خروجی در فایل
# صادر کردن تمام سرورها
arianet servers list -o json > servers.json
# صادر کردن در CSV
arianet servers list -o csv > servers.csv
جریانکاری استقرار
1. راهاندازی سرور
#!/bin/bash
# متغیرها
SERVER_NAME="web-server-1"
OS="ubuntu-22.04"
PLAN="shared-2c-2g"
REGION="ir-tehran-1"
# ایجاد سرور
echo "در حال ایجاد $SERVER_NAME..."
RESPONSE=$(arianet servers create \
--name $SERVER_NAME \
--os $OS \
--plan $PLAN \
--region $REGION \
-o json)
SERVER_ID=$(echo $RESPONSE | jq -r '.id')
echo "سرور با موفقیت ایجاد شد: ID=$SERVER_ID"
# انتظار برای راهاندازی
echo "در حال انتظار برای راهاندازی سرور..."
sleep 30
# بررسی وضعیت
STATUS=$(arianet servers get $SERVER_ID -o json | jq -r '.status')
echo "وضعیت سرور: $STATUS"
2. مقیاسبندی خودکار
#!/bin/bash
# اگر بیش از 5 سرور فعال نیست، سرور جدیدی ایجاد کنید
ACTIVE_COUNT=$(arianet servers list -o json | jq '[.[] | select(.status=="active")] | length')
if [ $ACTIVE_COUNT -lt 5 ]; then
echo "تعداد سرورها کافی نیست. در حال ایجاد سرور جدید..."
arianet servers create \
--name "auto-server-$(date +%s)" \
--os ubuntu-22.04 \
--plan shared-2c-2g \
--region ir-tehran-1
fi
3. برسی سلامت سرورها
#!/bin/bash
# بررسی هویت تمام سرورها
arianet servers list -o json | jq '.[]' | while read server; do
ID=$(echo $server | jq -r '.id')
NAME=$(echo $server | jq -r '.name')
UPTIME=$(echo $server | jq -r '.uptime_percentage')
if (( $(echo "$UPTIME < 95" | bc -l) )); then
echo "⚠️ هشدار: $NAME (ID: $ID) - آپ تايم: $UPTIME%"
else
echo "✓ $NAME - آپ تايم: $UPTIME%"
fi
done
متغیرهای محیطی
تنظیم محیط
# تعیین توکن API
export ARIANET_TOKEN="your_api_token"
# تعیین نقطهپایانی API
export ARIANET_API_URL="https://api.arianet.io"
# تعیین فرمت خروجی پیشفرض
export ARIANET_OUTPUT_FORMAT="json"
# فعالسازی حالت verbose
export ARIANET_DEBUG="true"
فایل تنظیمات
# پیکربندی در ~/.arianet/config
[default]
token = your_api_token
api_url = https://api.arianet.io
output_format = json
[production]
token = production_token
api_url = https://api.arianet.io
[staging]
token = staging_token
api_url = https://staging-api.arianet.io
برطرف کردن مشکلات
مشکل اتصال
# بررسی اتصال
arianet ping
# نمایش اطلاعات دقیق خطا
arianet servers list --debug
# بررسی نقطهپایانی API
curl -I https://api.arianet.io/health
مشکل احراز هویت
# تأیید توکن
arianet whoami
# بازتنظیم احراز هویت
arianet logout
arianet login
# بررسی فایل تکن
cat ~/.arianet/token
مشکل زمانبندی
# افزایش زمان انتظار
arianet servers list --timeout 30s
# بررسی سرعت شبکه
ping api.arianet.io
خطای نرخ محدودی
# اگر 429 دریافت کنید، بین درخواستها منتظر بمانید
arianet servers list --retry-after 10
نمونههای عملی
بکاپ گیری از تمام سرورها
#!/bin/bash
BACKUP_DIR="./backups"
mkdir -p $BACKUP_DIR
# صادر کردن تمام سرورها
arianet servers list -o json > "$BACKUP_DIR/servers-$(date +%Y%m%d-%H%M%S).json"
# صادر کردن تمام کلیدهای SSH
arianet ssh-keys list -o json > "$BACKUP_DIR/ssh-keys-$(date +%Y%m%d-%H%M%S).json"
echo "✓ بکاپ گیری مکمل شد"
بررسی هشدار موجودی
#!/bin/bash
THRESHOLD=10000
BALANCE=$(arianet balance -o json | jq -r '.balance')
if [ $BALANCE -lt $THRESHOLD ]; then
echo "⚠️ هشدار: موجودی کم! ($BALANCE تومان)"
# ارسال ایمیل یا اعلان
else
echo "✓ موجودی کافی است ($BALANCE تومان)"
fi
راهاندازی مجدد دورهای
#!/bin/bash
# راهاندازی مجدد تمام سرورها هر 7 روز
# (افزودن به crontab)
# 0 2 * * 0 /path/to/reboot-servers.sh
arianet servers list -o json | jq -r '.[] | .id' | while read id; do
echo "راهاندازی مجدد سرور $id..."
arianet servers reboot $id --confirm
sleep 5
done
echo "✓ راهاندازی مجدد دورهای مکمل شد"
راهنمای تصحیح و توسعه
تثبیت نسخه خاص
# نسخه ۱.۲.۳ را نصب کنید
arianet update --version 1.2.3
اطلاعات نسخه
arianet --version
# خروجی:
# arianet version 1.5.0 (build: abc123, os: darwin/amd64)
فعالسازی حالت debug
# بطور موقت
arianet servers list --debug
# یا متغیر محیطی
export DEBUG=true
منابع و ارتباطات
- 📖 مستندات API
- 🐙 GitHub Repository
- 🐛 گزارش مشکل
- 💬 انجمن
- 📧 پشتیبانی