[TOC]
## 核心命令
在命令行中輸入 `appnode agent`,可查看所有核心命令:
~~~raw
# appnode agent
NAME:
appnode-agent - appnode agent command line tools
USAGE:
appnode-agent command [command options] [arguments...]
AUTHOR(S):
AppNode Dev Team <develop@appnode.com>
COMMANDS:
status status agent
start start agent
stop stop agent
restart restart agent
config config agent
remove remove agent
license license management
~~~
### 受控端服務管理
#### 查看受控端運行狀態
`appnode agent status`
示例(CentOS 6下):
~~~raw
# appnode agent status
appnode-agent-server (pid 2145) is running...
~~~
#### 啟動受控端
`appnode agent start`
示例(CentOS 6下):
~~~raw
# appnode agent start
Starting AppNode Agent: [ OK ]
~~~
#### 停止受控端
`appnode agent stop`
示例(CentOS 6下):
~~~raw
# appnode agent stop
Stopping AppNode Agent: [ OK ]
~~~
#### 重啟受控端
`appnode agent restart`
示例(CentOS 6下):
~~~raw
# appnode agent restart
Stopping AppNode Agent: [ OK ]
Starting AppNode Agent: [ OK ]
~~~
### 受控端配置
#### 查看受控端的所有配置
`appnode agent config`
示例:
~~~raw
# appnode agent config
agent_network : tcp
agent_ip_addr : 0.0.0.0
agent_port : 9999
agent_protocol : http
agent_domain_name :
agent_tls_cert : <not set>
agent_tls_key : <not set>
agent_sign_key : ExRXPjabfcnrnTxHw2wa4rR830gPz542
~~~
各個參數的含義:
* agent_network
受控端網絡類型,為 tcp(TCP連接)或 unix(本地 Unix Domain Socket)
* agent_ip_addr
受控端監聽的 IP 地址,* 或 0.0.0.0 表示全部。
IP 地址必須為本地網卡中存在的 IP 地址。
* agent_port
受控端監聽的 TCP 端口,范圍為:1~65535。
* agent_protocol
受控端使用的協議,為 http 或 https。
* agent_domain_name
受控端綁定的域名,綁定域名后只能通過綁定的域名訪問受控端。
* agent_tls_cert
受控端 SSL 證書文件路徑。
受控端使用的協議為 https 時才有效。
* agent_tls_key
受控端 SSL 密鑰文件路徑。
受控端使用的協議為 https 時才有效。
* agent_sign_key
受控端 API 簽名密鑰。
請勿設置為空,否則你的服務器將可能會攻擊。
#### 查看受控端的單個配置
`appnode agent config 配置項`
示例,查看監聽的端口:
~~~raw
# appnode agent config agent_port
agent_port : 9999
~~~
#### 修改受控端配置
`appnode agent config 配置項 配置值`
示例,修改綁定的域名為:1.node.appnode.com:
~~~raw
# appnode agent config agent_domain_name 1.node.appnode.com
# appnode agent config
agent_network : tcp
agent_ip_addr : 0.0.0.0
agent_port : 9999
agent_protocol : http
agent_domain_name : 1.node.appnode.com
agent_tls_cert : <not set>
agent_tls_key : <not set>
agent_sign_key : ExRXPjabfcnrnTxHw2wa4rR830gPz542
~~~
示例,取消域名綁定:
~~~raw
# appnode agent config agent_domain_name ""
# appnode agent config
agent_network : tcp
agent_ip_addr : 0.0.0.0
agent_port : 9999
agent_protocol : http
agent_domain_name :
agent_tls_cert : <not set>
agent_tls_key : <not set>
agent_sign_key : ExRXPjabfcnrnTxHw2wa4rR830gPz542
~~~
### 序列號授權管理
在命令行中輸入 `appnode agent license`,可查看所有授權管理命令(和控制中心一樣):
~~~raw
# appnode agent license
NAME:
appnode-agent license - license management
USAGE:
appnode-agent license command [command options] [arguments...]
COMMANDS:
list show license list
issue issue a new license
update update all license
delete delete a license
bindip set or show bind ip address
mac get MAC of current machine
OPTIONS:
--help, -h show help
~~~
#### 顯示所有序列號授權
`appnode agent license list`
示例:
~~~raw
# appnode agent license list
-------- LICENSE LIST --------
SN : agent-free
PCODE: agent-free
PNAME: 受控端免費版 通用型
IP : 115.29.*.*
FLG : agent,filemgr,service,usermgr,procmgr,crond,service,scriptmgr,logmgr,iptables,backupmgr
TTL : 604800
NUP : 2016-09-28 12:27:45 CST
EXP : 2016-10-04 12:27:45 CST
END : 2106-02-07 14:28:15 CST
PMN : Y
MAC : 6a82113d1767e6f1116352df9e9f0f7731cb102a52204088dcc1566a75ae9044
STA : ACTIVE
SN : T*6FV-W*0VH-F*XVD-H*FPO-Q*PG8
PCODE: agent-standard
PNAME: 受控端標準版 通用型
IP : 115.29.*.*
FLG : nginx,mysqld,php,sshd,storage,rsync,rsyncd,sysmonitor,pptpd,pureftpd,shadowsocks,memcached,smbd,redis,51sync
TTL : 604800
NUP : 2016-09-28 12:27:45 CST
EXP : 2016-10-04 12:27:45 CST
END : 2017-09-23 20:53:08 CST
PMN : N
MAC : 6a82113d1767e6f1116352df9e9f0f7731cb102a52204088dcc1566a75ae9044
STA : ACTIVE
~~~
各個參數的含義:
* SN:序列號
* PCODE:產品代號
* PNAME:產品名稱
* IP:授權使用的公網 IP 地址
* FLG:可以使用的應用代號列表
* TTL:每次更新的授權文件的過期時間
* NUP:下次授權更新時間
* EXP:本次授權到期時間
* END:授權最終到期時間
* PMN:是否終身有效
* MAC:機器碼
* STA:授權狀態
#### 激活序列號
`appnode agent license issue 序列號`
示例:
~~~raw
# appnode agent license issue T*6FV-W*0VH-F*XVD-H*FPO-Q*PG8
-------- ISSUE SUCCESSFULLY --------
SN : T*6FV-W*0VH-F*XVD-H*FPO-Q*PG8
PCODE: agent-standard
PNAME: 受控端標準版 通用型
IP : 115.29.175.190
FLG : nginx,mysqld,php,sshd,storage,rsync,rsyncd,sysmonitor,pptpd,pureftpd,shadowsocks,memcached,smbd,redis,51sync
TTL : 604800
NUP : 2016-09-28 15:14:14 CST
EXP : 2016-10-04 15:14:14 CST
END : 2017-09-23 20:53:08 CST
PMN : N
MAC : 6a82113d1767e6f1116352df9e9f0f7731cb102a52204088dcc1566a75ae9044
STA : ACTIVE
~~~
#### 更新授權
更新所有序列號的授權:
`appnode agent license update`
示例:
~~~raw
# appnode agent license update
updating agent-free: OK
updating T*6FV-W*0VH-F*XVD-H*FPO-Q*PG8: OK
~~~
更新單個序列號的授權:
`appnode agent license update 序列號`
示例:
~~~raw
# appnode agent license update T*6FV-W*0VH-F*XVD-H*FPO-Q*PG8
updating T*6FV-W*0VH-F*XVD-H*FPO-Q*PG8: OK
~~~
#### 刪除授權
`appnode agent license delete 序列號`
示例:
~~~raw
# appnode agent license delete T*6FV-W*0VH-F*XVD-H*FPO-Q*PG8
# appnode agent license list
-------- LICENSE LIST --------
SN : agent-free
PCODE: agent-free
PNAME: 受控端免費版 通用型
IP : 115.29.*.*
FLG : agent,filemgr,service,usermgr,procmgr,crond,service,scriptmgr,logmgr,iptables,backupmgr
TTL : 604800
NUP : 2016-09-28 15:15:11 CST
EXP : 2016-10-04 15:15:11 CST
END : 2106-02-07 14:28:15 CST
PMN : Y
MAC : 6a82113d1767e6f1116352df9e9f0f7731cb102a52204088dcc1566a75ae9044
STA : ACTIVE
~~~
#### 綁定授權 IP
如果你的服務器有多個公網 IP,需要在激活序列號前,先指定使用哪個公網 IP 進行授權,否則可能導致以下兩個問題:
在激活序列號時可能會隨機選用一個公網 IP 進行授權
在驗證授權時可能會隨機選用一個公網 IP 進行驗證,造成授權驗證失敗
查看:
`appnode agent license bindip`
示例:
~~~raw
# appnode agent license bindip
BIND IP:
~~~
上例中輸出的綁定 IP 為空,表示未綁定 IP。
修改:
`appnode ccenter license bindip IP地址`
示例:
~~~raw
# appnode agent license bindip 115.29.*.*
# appnode agent license bindip
BIND IP: 115.29.*.*
~~~
請注意:此處 IP 地址必須為你的服務器網卡上存在的 IP 地址,可在受控端的“系統信息”-“網絡信息”中查看。
#### 查看機器碼
`appnode agent license mac`
示例:
~~~raw
# appnode agent license mac
MAC: 6a82113d1767e6f1116352df9e9f0f7731cb102a52204088dcc1566a75ae9044
~~~
### 卸載
#### 卸載受控端
`appnode agent remove`
示例:
~~~raw
# appnode agent remove
>> Preparing to remove AppNode Agent...
* Are you sure want to remove AppNode Agent? [y/N] y
......
~~~
輸入卸載命令后,會提醒你是否確認卸載,請輸入 y 后再再回車確認卸載。