OpDemand Shell

Logiciel capture d'écran:
OpDemand Shell
Détails logiciels:
Version: 0.9
Date de transfert: 15 Apr 15
Développeur: OpDemand
Licence: Gratuit
Popularité: 10

Rating: nan/5 (Total Votes: 0)

Le projet OpDemand Shell contient l'interface du client de ligne de commande au système C2. Ces modules Python font partie de commandement et de contrôle de la technologie de OpDemand (C2).
Open Source
Le projet c2-coque a été faite open source par OpDemand.
C2 Shell Documentation
Avant que tu commences
- Vous aurez besoin d'un compte actif C2. Créer un gratuitement au https://c2.opdemand.com/
- Les instructions supposent OSX ou Linux (Windows n'a pas été testé, mais devrait fonctionner)
Installation
Installation utilise distutils norme de la Convention.
sudo python setup.py install
Configuration
Ajoutez votre connexion C2 adresse e-mail à la configuration du client local.
ensemble local c2 --email=c2user@opdemand.com
Un get locale c2 affiche la configuration actuelle.
Connexion
Émettre une connexion c2, qui utilisera l'adresse électronique configurée ci-dessus et vous demandera un mot de passe.
utilisateur @ box: ~ / espace de travail / c2-shell $ c2 connexion
mot de passe:
2011-06-07 08: 44: 12,052 - INFO - => POST https://c2core.opdemand.com/session
2011-06-07 08: 44: 13,095 - INFO - GET https://c2core.opdemand.com/template
2011-06-07 09: 21: 21,879 - INFO - <= 200 OK, la lecture 1822 octets d'application / json
[Liste # JSON de modèles
& Nbsp; {
& Nbsp; # premier modèle
& Nbsp;},
& Nbsp; {
& Nbsp; # Deuxième modèle
& Nbsp;}
]
2011-06-07 09: 21: 21,881 - INFO - (template / liste) succès dans 0.524872s
Trouver la valeur _id du modèle que vous souhaitez déployer, et le copier dans votre presse-papiers.
Créer une nouvelle plate-forme
Sélectionnez le modèle souhaité et délivrer une charge de modèle de c2 de la _id de modèle, qui permettra de créer une plate-forme frais.
utilisateur @ box: ~ / espace de travail / c2-shell modèle $ c2 charge --_ id = 6c86dfc5ddfe464199021b8dcaf521a2
2011-06-07 09: 42: 36,711 - INFO - => POST https://c2core.opdemand.com/template/6c86dfc5ddfe464199021b8dcaf521a2/load
2011-06-07 09: 42: 38,606 - INFO - <= 201 Créé, lecture 14850 octets d'application / json
{
& Nbsp; # Beaucoup plus de représentation JSON du modèle
}
2011-06-07 09: 42: 38,757 - INFO - (template / charge) succès dans 2.061932s
Liste Plates-formes
Émettre une liste de plate-forme de c2 pour voir les plates-formes disponibles dans votre compte.
utilisateur @ box: ~ / espace de travail / c2-shell $ c2 liste de plate-forme
2011-06-07 09: 46: 48,327 - INFO - => GET https://c2core.opdemand.com/platform
2011-06-07 09: 46: 48,884 - INFO - <= 200 OK, la lecture 566 octets d'application / json
[
& Nbsp; {
& Nbsp; # Votre nouvelle plate-forme
& Nbsp;}
]
2011-06-07 09: 46: 48,885 - INFO - (plateforme / liste) succès dans 0.572228s
Copiez le _id de cette plate-forme pour votre presse-papiers.
Lire la plate-forme
opérations de Liste Afficher uniquement les représentations analytiques des éléments d'une collection. Pour voir la représentation complète d'une plate-forme (qui comprend ses composants imbriqués), vous devez émettre une plate-forme de c2 lire et fournir le _id:
utilisateur @ box: ~ / espace de travail / c2-shell plateforme $ c2 lire --_ id = 7bbeacb1082e4810bb1a6643d024496e
2011-06-07 10: 16: 06050 - INFO - => GET https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011-06-07 10: 16: 06984 - INFO - <= 200 OK, la lecture 14,850 octets d'application / json
{
& Nbsp; # pleine représentation de la plate-forme
}
2011-06-07 10: 16: 07152 - INFO - (plateforme / lecture) succès dans 1.117754s
Travailler avec les réponses JSON
La plate-forme ci-dessus est trop long à lire. Heureusement, la coquille de C2 comprend un prettifier JSON intégré qui rend la sortie JSON de toute commande shell C2 beaucoup plus facile à lire.
Il suffit de diriger ne importe quel commande c2 à C2 jolie:
utilisateur @ box: ~ / espace de travail / c2-shell $ modèle de c2 lire --_ id = 6c86dfc5ddfe464199021b8dcaf521a2 | c2 jolie
2011-06-07 09: 32: 00646 - INFO - => GET https://c2core.opdemand.com/template/6c86dfc5ddfe464199021b8dcaf521a2
2011-06-07 09: 32: 01378 - INFO - <= 200 OK, la lecture 12,022 octets d'application / json
2011-06-07 09: 32: 01535 - INFO - (template / lire) succès dans 0.904613s
tiers.0.name "Réseau Tier"
tiers.0.doctype «palier»
tiers.0._rev "1-5a37d211b276deee536cd72a016af8fa"
... Reste embellie JSON
Toutes les commandes de C2 lues depuis l'entrée standard et écrire sur la sortie standard. Cela signifie JSON premières et JSON embellie peuvent être raccordés à une autre commande qui utilise des tuyaux de type UNIX. (Par exemple grep).
Configurer la plate-forme
Lisez d'abord la plate-forme et grep pour les informations de configuration par défaut:
utilisateur @ box: ~ / espace de travail / c2-shell plateforme $ c2 lire --_ id = 7bbeacb1082e4810bb1a6643d024496e | c2 pretty | grep config
2011-06-07 10: 26: 29,828 - INFO - => GET https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011-06-07 10: 26: 30,486 - INFO - <= 200 OK, la lecture 14,850 octets d'application / json
2011-06-07 10: 26: 30,635 - INFO - (plateforme / lecture) succès dans 0.821403s
config.access_network "0.0.0.0/0"
config.image_id "ami-06ad526f"
config.doctype "config"
config._rev "1-38d720a0975e4d377ccbfd3cb7864185"
config.access_port "22"
config.cloud_name "nous-est-une"
config.clone_.parent_id "ceee3724a3674bc096a2a6d2dfde7209"
config.clone_.parent_impl.cls_ "c2core.resolve.Config"
config.admin_network "0.0.0.0/0"
config._id "ceee3724a3674bc096a2a6d2dfde7209"
config.impl.cls_ "c2core.resolve.Config"
config.views.7bbeacb1082e4810bb1a6643d024496e.0.0 "7bbeacb1082e4810bb1a6643d024496e"
config.views.7bbeacb1082e4810bb1a6643d024496e.0.1 "config"
metadata.config_info.access_port "port d'écoute sur le serveur"
metadata.config_info.access_network "masque de réseau pour les utilisateurs publics"
metadata.config_info.cloud_name "nom de la région AWS"
metadata.config_info.admin_network "masque de réseau pour les utilisateurs admin"
Disons restreindre tous les accès réseau à un hôte - 1.1.1.1/32. Il faudra changer les touches de access_network et admin_network.
Depuis config est un document imbriqué avec sa propre _id et _rev, nous devons modifier directement le document de configuration. Pour ce faire, nous suivons la convention RESTful de la lecture de la représentation et de la tuyauterie à une opération de mise à jour:
utilisateur @ box: ~ / espace de travail / c2-shell $ c2 config lire --_ id = ceee3724a3674bc096a2a6d2dfde7209 | Mise à jour de configuration c2 - --access_network = 1.1.1.1 / 32 --admin_network = 1.1.1.1 / 32
2011-06-07 10: 35: 39,643 - INFO - lecture objet à partir de stdin, ctrl-c pour briser ...
2011-06-07 10: 35: 39,661 - INFO - => GET https://c2core.opdemand.com/config/ceee3724a3674bc096a2a6d2dfde7209
2011-06-07 10: 35: 40,573 - INFO - <= 200 OK, la lecture 692 octets d'application / json
2011-06-07 10: 35: 40,574 - INFO - (config / lecture) succès dans 0.931527s
2011-06-07 10: 35: 40,603 - INFO - => PUT https://c2core.opdemand.com/config/ceee3724a3674bc096a2a6d2dfde7209
2011-06-07 10: 35: 41,316 - INFO - <= 200 OK, la lecture 694 octets d'application / json
{
& Nbsp; "_ id": "ceee3724a3674bc096a2a6d2dfde7209",
& Nbsp; "_ rev": "2-6a1cac4a1851fead776d4184e1218028",
& Nbsp; "access_network": "1.1.1.1/32",
& Nbsp; "access_port": "22",
& Nbsp; "admin_network": "1.1.1.1/32",
& Nbsp; "clone_": {
& Nbsp; "parent_id": "ceee3724a3674bc096a2a6d2dfde7209",
& Nbsp; "parent_impl": {
& Nbsp; "cls_": "c2core.resolve.Config"
& Nbsp;}
& Nbsp;},
& Nbsp; "cloud_name": "nous-est-une»,
& Nbsp; "doctype": "config",
& Nbsp; "image_id": "ami-06ad526f",
& Nbsp; »impl": {
& Nbsp; "cls_": "c2core.resolve.Config"
& Nbsp;},
& nbsp; "vues": {
& Nbsp; "7bbeacb1082e4810bb1a6643d024496e": [
& Nbsp; [
& Nbsp; "7bbeacb1082e4810bb1a6643d024496e",
& Nbsp; "config"
& Nbsp;]
& Nbsp;]
& Nbsp;}
}
2011-06-07 10: 35: 41,317 - INFO - (config / mise à jour) succès dans 0.730138s
Re-lire la configuration de la plate-forme pour confirmer le document parent inclut la configuration imbriquée mise à jour:
utilisateur @ box: ~ / espace de travail / c2-shell plateforme $ c2 lire --_ id = 7bbeacb1082e4810bb1a6643d024496e | c2 pretty | grep config
2011-06-07 10: 37: 11,131 - INFO - => GET https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011-06-07 10: 37: 11,825 - INFO - <= 200 OK, la lecture 14,852 octets d'application / json
2011-06-07 10: 37: 11,977 - INFO - (plateforme / lecture) succès dans 0.862029s
config.access_network "1.1.1.1/32"
config.image_id "ami-06ad526f"
config.doctype "config"
config._rev "2-6a1cac4a1851fead776d4184e1218028"
config.access_port "22"
config.cloud_name "nous-est-une"
config.clone_.parent_id "ceee3724a3674bc096a2a6d2dfde7209"
config.clone_.parent_impl.cls_ "c2core.resolve.Config"
config.admin_network "1.1.1.1/32"
config._id "ceee3724a3674bc096a2a6d2dfde7209"
config.impl.cls_ "c2core.resolve.Config"
config.views.7bbeacb1082e4810bb1a6643d024496e.0.0 "7bbeacb1082e4810bb1a6643d024496e"
config.views.7bbeacb1082e4810bb1a6643d024496e.0.1 "config"
metadata.config_info.access_port "port d'écoute sur le serveur"
metadata.config_info.access_network "masque de réseau pour les utilisateurs publics"
metadata.config_info.cloud_name "nom de la région AWS"
metadata.config_info.admin_network "masque de réseau pour les utilisateurs admin"
Lancer la plate-forme
Avec nos références AWS en place, et notre plate-forme en file d'attente, nous sommes prêts à aller. Émettre un début de plate-forme de c2 et laissez l'orchestration commencer:
utilisateur @ box: ~ / espace de travail / c2-shell $ plate-forme de c2 commencer --_ id = 7bbeacb1082e4810bb1a6643d024496e
2011-06-07 10: 42: 52,849 - INFO - => POST https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e/start
2011-06-07 10: 42: 53,816 - INFO - <= 202 acceptées, la lecture 0 octets d'application / json
2011-06-07 10: 42: 53,816 - INFO - (plateforme / start) succès dans 0.981219s
Pour suivre l'évolution de la plate-forme, lisez la représentation de la plate-forme complète et grep pour le statut de tous les objets imbriqués:
utilisateur @ box: ~ / espace de travail / c2-shell plateforme $ c2 lire --_ id = 7bbeacb1082e4810bb1a6643d024496e | c2 pretty | état de grep
2011-06-07 10: 43: 06530 - INFO - => GET https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011-06-07 10: 43: 07228 - INFO - <= 200 OK, la lecture 22,227 octets d'application / json
2011-06-07 10: 43: 07451 - INFO - (plateforme / lecture) succès dans 0.935643s
tiers.0.status_.value «bâtiment»
tiers.0.keypair.status_.detail "paire de clés créée"
tiers.0.keypair.status_.value "intégré"
tiers.0.sg.status_.detail "règles autorisés succès"
tiers.0.sg.status_.value "intégré"
tiers.1.status_.value «bâtiment»
tiers.1.server.status_.detail "en attente de l'exécution, actuellement pendante"
tiers.1.server.status_.value «bâtiment»
status_.detail "lancer le fonctionnement déclenché"
status_.value "à partir"
Nous pouvons voir l'état du niveau de la plate-forme commence. Re-issue de cette commande un certain nombre de fois pour le statut "de scrutin». Grepper pour l'état est également utile pour démontrer lesquels des composants passent actuellement. Une fois la plate-forme est fait, la situation devrait se présenter comme suit:
utilisateur @ box: ~ / espace de travail / c2-shell plateforme $ c2 lire --_ id = 7bbeacb1082e4810bb1a6643d024496e | c2 pretty | état de grep
2011-06-07 10: 44: 21,015 - INFO - => GET https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011-06-07 10: 44: 21,736 - INFO - <= 200 OK, la lecture 27,129 octets d'application / json
2011-06-07 10: 44: 21,988 - INFO - (plateforme / lecture) succès dans 0.990599s
tiers.0.status_.detail "a démarré avec succès"
tiers.0.status_.value "running"
tiers.0.keypair.status_.detail "paire de clés créée"
tiers.0.keypair.status_.value "running"
tiers.0.sg.status_.detail "règles autorisés succès"
tiers.0.sg.status_.value "running"
tiers.1.status_.detail "a démarré avec succès"
tiers.1.status_.value "running"
tiers.1.server.status_.detail "auditeur prêt à 22 / tcp"
tiers.1.server.status_.value "running"
status_.detail "commencer opération réussie"
status_.value "running"
Remarque un statut de niveau parent de «courir» avec l'auditeur du serveur prêt à 22 / tcp. Notre plate-forme est prête.
Utilisation de la plate-forme
Toutes les plateformes publient des informations sur la façon dont ils sont utilisés. La plupart des plates-formes publient une combinaison de:
- URL
- hostname / combinaisons Port
- Connexions
- Les mots de passe
Si nous lisons la plate-forme et grep pour publier nous pouvons voir cette plate-forme a publié une URL SSH simple:
utilisateur @ box: ~ / espace de travail / c2-shell plateforme $ c2 lire --_ id = 7bbeacb1082e4810bb1a6643d024496e | c2 pretty | grep publier
2011-06-07 10: 51: 30,694 - INFO - => GET https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011-06-07 10: 51: 31,764 - INFO - <= 200 OK, la lecture 27,129 octets d'application / json
2011-06-07 10: 51: 32,038 - INFO - (plateforme / lecture) succès dans 1.367026s
tiers.1.server.publish.access_url "ssh: //ubuntu@ec2-50-19-55-84.compute-1.amazonaws.com/"
metadata.publish_info.access_url "URL pour accéder à la plate-forme"
Un modèle commun est pour les plateformes de publier:
- Admin URL
- Admin Login
- Mot de passe Admin
- Accès URL
L'arrêt de la plate-forme
Une fois la plate-forme se est arrêté, son statut ressemblera à quelque chose comme ceci:
utilisateur @ box: ~ / espace de travail / c2-shell plateforme $ c2 lire --_ id = 7bbeacb1082e4810bb1a6643d024496e | c2 pretty | état de grep
2011-06-07 10: 57: 51,345 - INFO - => GET https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011-06-07 10: 57: 52,128 - INFO - <= 200 OK, la lecture 27,966 octets d'application / json
2011-06-07 10: 57: 52,424 - INFO - (plateforme / lecture) succès dans 1.093576s
tiers.0.status_.detail "arrêté avec succès"
tiers.0.status_.value "arrêté"
tiers.0.keypair.status_.detail "paire de clés créée"
tiers.0.keypair.status_.value "arrêté"
tiers.0.sg.status_.detail "règles autorisés succès"
tiers.0.sg.status_.value "arrêté"
tiers.1.status_.detail "arrêté avec succès"
tiers.1.status_.value "arrêté"
tiers.1.server.status_.detail "en attente de l'arrêt, actuellement arrêté"
tiers.1.server.status_.value "arrêté"
status_.detail "opération d'arrêt succès"
status_.value "arrêté"
La plate-forme existe toujours dans le nuage, mais il ne est plus encourir des coûts de calcul coûteux (il est toutefois encourir des coûts de stockage négligeables). Vous n'êtes pas non plus à payer de frais de plate-forme de C2. À ce stade, votre plate-forme efficace coûte rien.
Plates-formes peuvent être arrêtés et ont commencé sans limite.
Détruisez la plate-forme
Pour effectivement détruire tous les composants de nuages ​​inclus dans votre plate-forme, vous devez émettre une plate-forme de c2 détruire et fournir les _id de la plate-forme cible:
utilisateur @ box: ~ / espace de travail / c2-shell plateforme $ c2 détruire --_ id = 7bbeacb1082e4810bb1a6643d024496e
2011-06-07 11: 04: 10,667 - INFO - => POST https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e/destroy
2011-06-07 11: 04: 11,953 - INFO - <= 202 acceptées, la lecture 0 octets d'application / json
2011-06-07 11: 04: 11,953 - INFO - (plateforme / détruire) succès dans 1.300462s
Supprimer la plate-forme
Si vous listez les plates-formes, vous verrez que la plate-forme détruite existe toujours:
utilisateur @ box: ~ / espace de travail / c2-shell liste de plateforme $ c2 | c2 jolie
2011-06-07 11: 12: 02771 - INFO - => GET https://c2core.opdemand.com/platform
2011-06-07 11: 12: 03149 - INFO - <= 200 OK, la lecture 1577 octets d'application / json
2011-06-07 11: 12: 03150 - INFO - (plateforme / liste) succès dans 0.394324s
0.views.7bbeacb1082e4810bb1a6643d024496e.0.0 "7bbeacb1082e4810bb1a6643d024496e"
0.time_.disconnect.date_ "1,307,466,249,487580"
0.time_.stop.date_ "1307465858,607597"
0.time_.start.date_ "1307465019,767619"
0.time_.build.date_ "1,307,465,019,475195"
0.time_.destroy.date_ "1307466249,487347"
0.time_.connect.date_ "1307466240,220381"
0.status_.detail «détruire opération réussie"
0.status_.value "détruit"
0.doctype "plate-forme"
0._rev "7-38fe44c5a900894adf48f4a416c94338"
0.template.cls_ "lib.platform.vanilla.natty.UbuntuNattyPlatform"
0._id "7bbeacb1082e4810bb1a6643d024496e"
0.state.running fausse
0.state.transitioning fausse
0.state.built fausse
0.impl.cls_ "lib.platform.vanilla.natty.UbuntuNattyPlatform"
0.interval_.destroy 9,3936290740966797
0.interval_.stop 33,600441932678223
0.interval_.build 57,54404091835022
0.interval_.start 57,836580991744995
De l'intervalle vous pouvez voir qu'il a fallu:
- 58 secondes pour démarrer cette plate-forme
- 33 secondes pour l'arrêter
- 9 secondes pour la détruire
Vous pouvez toujours re-démarrer une plate-forme détruite et le faire reconstruire à nouveau les composants de nuages. Cependant, pour compléter supprimer la plate-forme et de ses documents imbriqués, vous devez émettre une plate-forme de c2 supprimer:
utilisateur @ box: ~ / espace de travail / c2-shell plateforme $ c2 supprimer --_ id = 7bbeacb1082e4810bb1a6643d024496e
2011-06-07 11: 15: 45,235 - INFO - => SUPPRIMER https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011-06-07 11: 15: 46,474 - INFO - <= 204 Pas de contenu, la lecture 0 octets d'application / json
2011-06-07 11: 15: 46,474 - INFO - (plateforme / supprimer) succès dans 1.252582s
Pour confirmer, nous pouvons voir notre liste de plate-forme est maintenant vide:
utilisateur @ box: ~ / espace de travail / c2-shell $ c2 liste de plate-forme
2011-06-07 11: 15: 51,890 - INFO - => GET https://c2core.opdemand.com/platform
2011-06-07 11: 15: 52,296 - INFO - <= 200 OK, la lecture 2 octets d'application / json
2011-06-07 11: 15: 52,297 - INFO - (plateforme / liste) succès dans 0.423616s
Déconnexion
En lançant une info c2 nous pouvons voir l'état de notre session:
utilisateur @ box: ~ / espace de travail / c2-shell info $ c2
2011-06-07 11: 17: 11,656 - INFO - => GET https://c2core.opdemand.com/session/73c2e9b49d01c695fb6c74927b8eb0eee5cdc82c2064cd728a8033eb83ea5b95
2011-06-07 11: 17: 12,134 - INFO - <= 200 OK, la lecture 4082 octets d'application / json
{
& Nbsp; "compte": "c2-opdemand",
& Nbsp; "email": "gabriel@opdemand.com",
& Nbsp; "expires_at": "Vendredi 10 Juin 2011 08h44",
& Nbsp; "session_id": "73c2e9b49d01c695fb6c74927b8eb0eee5cdc82c2064cd728a8033eb83ea5b95"
}
2011-06-07 11: 17: 12,138 - INFO - (info) succès dans 0.497018s
Déconnexion déconnexion est tout simplement c2:
utilisateur @ box: ~ / espace de travail / c2-shell $ c2 déconnexion
2011-06-07 11: 17: 44,903 - INFO - => SUPPRIMER https://c2core.opdemand.com/session/73c2e9b49d01c695fb6c74927b8eb0eee5cdc82c2064cd728a8033eb83ea5b95
2011-06-07 11: 17: 45,330 - INFO - <= 204 Pas de contenu, la lecture 0 octets d'application / json
2011-06-07 11: 17: 45,330 - INFO - (déconnexion) succès dans 0.443405s
utilisateur @ box: ~ / espace de travail / c2-shell info $ c2
2011-06-07 11: 17: 49,025 - INFO - (info) succès dans 0.000376s
À propos de C2
Command & contrôle de la technologie de OpDemand (C2) automatise le déploiement et la gestion des infrastructures de cloud computing. Avec une interface aussi simple que "démarrer, arrêter, clone et de détruire," C2 vous donne les commandes de votre nuage

Exigences :.

  • Python

Logiciel similaire

FtpCube
FtpCube

3 Jun 15

PD-ksh
PD-ksh

3 Jun 15

bash-powerprompt
bash-powerprompt

20 Feb 15

KVsftpdManager
KVsftpdManager

3 Jun 15

Commentaires à OpDemand Shell

Commentaires non trouvées
Ajouter un commentaire
Tourner sur les images!