昨天已經大概介紹了 Ohara Configurator 服務的架構所包含的功能了,今天就來實際的操作幾個常用的 Configurator Restful API,在使用 Configurator Restful API 之前需要確認 Ohara Configurator container 服務連線的 Port 是否有開放對外其它主機也可以連線,如下指令:
$ docker ps -a
如下圖:
在 PORTS 的欄位有看到 Port 的資訊,就代表這個 PORT 有提供給其它的主機可以連進 Configurator 服務的 Container 裡面。除了開 container 的 Port 之外,也要確認對外主機的防火牆是否有關閉或是設定防火牆對外的 Port 有開放。可以使用以下指令來確認防火牆是否有關閉:
# systemctl status firewalld
在預設的情況下把 Configurator 服務的 container 關閉之後,下次重新啟動之後,有些之前設定的資料就會不見,例如是 Pipeline Graph 設定的資料就會不見。如果使用者不希望有設定資料不見的情況,在啟動 Configurator 服務的 container 時可以加上 -v 參數,讓 RocksDB 存放的資料對應到執行 docker container 的主機上,避免 container 被刪除有設定資料不見的現象,指令如下:
$ docker run --rm -d -v /tmp/configurator:/home/ohara/configurator -u root -p 12345:12345 oharastream/configurator:0.7.1 --port 12345 --folder /home/ohara/configurator
以上的指令主要是主機的 /tmp/configurator 的資料夾會對應到 container 裡面的 /home/ohara/configurator 資料夾,然後在執行 configuraotr 服務的時侯會使用 --folder 參數,指定要在 container 裡的 /home/ohara/configurator 的路徑存放資料。
**操作 Ohara Configurator 的 Restful API: **
$ curl -H "Content-Type: application/json" \
-X POST \
-d '{"name": "192.168.56.103", "port": 22, "user": "ohara", "password": "oharastream"}' http://192.168.56.103:12345/v0/nodes
2.建立 Zookeeper Cluster的 Restful API,指令如下:
$ curl -H "Content-Type: application/json" \
-X POST \
-d '{"name": "zk", "clientPort": 2181, "imageName": "oharastream/zookeeper:0.7.1", "peerPort": 2000, "electionPort": 2001, "nodeNames": ["192.168.56.103"]}' http://192.168.56.103:12345/v0/zookeepers
$ curl -H "Content-Type: application/json" -X PUT http://192.168.56.103:12345/v0/zookeepers/zk/start
以上的第一個指令用來建立 zookeeper cluster,第二個指令是用來啟動 Zookeeper Cluster
3.建立 Broker Cluster 的 Restful API,指令如下:
$ curl -H "Content-Type: application/json" \
-X POST \
-d '{"name": "bk", "clientPort": 9092, "zookeeperClusterName": "zk", "nodeNames": ["192.168.56.103"]}' http://192.168.56.103:12345/v0/brokers
$ curl -H "Content-Type: application/json" -X PUT http://192.168.56.103:12345/v0/brokers/bk/start
以上的第一個指令用來建立 broker cluster,第二個指令用來啟動 Broker Cluster
今天介紹了如何使用 Ohara Configurator API 來建立 Node、 Broker 和 Zookeeper Cluster 主要的目的是除了使用 UI 之外,讓開發者也可以使用透過寫程式的方式來操作 Ohara,Ohara 還有提供更多的 API 資訊,可以參考 Ohara 官方的文件:
https://ohara.readthedocs.io/en/latest/rest/index.html#rest