zhengchengyao / ceph-iscsi-cli Goto Github PK
View Code? Open in Web Editor NEWThis project forked from ceph/ceph-iscsi-cli
configshell based cli for managing ceph/iscsi gateways built using LIO
License: GNU General Public License v3.0
This project forked from ceph/ceph-iscsi-cli
configshell based cli for managing ceph/iscsi gateways built using LIO
License: GNU General Public License v3.0
ceph-iscsi-cli installs a targetcli-like interface to allow multiple ceph/iscsi gateways to be managed from a single interface. The CLI interfaces with the API exposed in the rbd-target-gw daemon running on each gateway. Here's an example of the shell interface the gwcli tool provides; /> ls o- / .................................................................................. [...] o- clusters ................................................................. [Clusters: 1] | o- ceph ..................................................................... [HEALTH_OK] | o- pools ................................................................... [Pools: 3] | | o- ec ........................................ [(2+1), Commit: 0b/40G (0%), Used: 0b] | | o- iscsi ..................................... [(x3), Commit: 0b/20G (0%), Used: 18b] | | o- rbd ....................................... [(x3), Commit: 8G/20G (40%), Used: 5K] | o- topology ......................................................... [OSDs: 3,MONs: 3] o- disks ................................................................... [8G, Disks: 5] | o- rbd.disk_1 ............................................................. [disk_1 (1G)] | o- rbd.disk_2 ............................................................. [disk_2 (2G)] | o- rbd.disk_3 ............................................................. [disk_3 (2G)] | o- rbd.disk_4 ............................................................. [disk_4 (1G)] | o- rbd.disk_5 ............................................................. [disk_5 (2G)] o- iscsi-target .............................................................. [Targets: 1] o- iqn.2003-01.com.redhat.iscsi-gw:ceph-gw ................................ [Gateways: 2] o- gateways ..................................................... [Up: 2/2, Portals: 2] | o- rh7-gw1 .................................................... [192.168.122.69 (UP)] | o- rh7-gw2 ................................................... [192.168.122.104 (UP)] o- hosts ................................................................... [Hosts: 2] o- iqn.1994-05.com.redhat:myhost1 ........................ [Auth: None, Disks: 1(1G)] | o- lun 0 ......................................... [rbd.disk_1(1G), Owner: rh7-gw2] o- iqn.1994-05.com.redhat:rh7-client .......... [LOGGED-IN, Auth: CHAP, Disks: 1(2G)] o- lun 0 ......................................... [rbd.disk_5(2G), Owner: rh7-gw2] The rbd-target-api daemon utilises the flask's internal development server to provide the REST api. It is normally not used in a production context, but given this specific use case it provides a simple way to provide an admin interface - at least for the first release! The API has been tested with Firefox RESTclient add-on with https (based on a common self-signed certificate). With the certificate in place on each gateway you can add basic auth credentials to match the local api configuration in the RESTclient and use the client as follows; Add a Header content type for application/x-www-form-urlencoded METHOD: PUT URL: https://192.168.122.69:5001/api/gateway/rh7-gw1 select the urlencoded content type and the basic auth credentials add the required variables to the body section in the client ui eg. ip_address=192.168.122.69 Click 'SEND' Curl Examples If the UI is not your thing, curl probably is! Here's an example of using curl to create a gateway node. curl --insecure --user admin:admin -d "ip_address=192.168.122.104" \ -X PUT https://192.168.122.69:5001/api/gateway/rh7-gw2 ## Installation ### Via RPM Simply install the provided rpm with ```rpm -ivh ceph-iscsi-cli-<ver>.el7.noarch.rpm``` ### Manually The following packages are required by ceph-iscsi-cli and must be installed before starting the rbd-target-api service: python-rtslib ceph-iscsi-config python-requests python-configshell python-flask pyOpenSSL To install the python package that provides the application logic, run the provided setup.py script i.e. ```> python setup.py install``` For the management daemon (rbd-target-api), simply copy the following files into their equivalent places on each gateway - <archive_root>/usr/lib/systemd/system/rbd-target-api.service --> /lib/systemd/system - <archive_root>/usr/bin/rbd-target-api--> /usr/bin ## Configuration Once the package is in installed, the Ceph ceph-iscsi-cli instructions found here: http://docs.ceph.com/docs/master/rbd/iscsi-target-cli/ can be used to create a iscsi-gateway.cfg and create a target.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.