ブログトップ 記事一覧 ログイン 無料ブログ開設

Simple is Beautiful このページをアンテナに追加 RSSフィード

2005 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 04 | 05 | 07 |
2013 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 09 | 10 | 12 |
2014 | 01 | 02 | 03 | 04 | 07 | 08 | 09 | 11 | 12 |
2015 | 01 | 02 | 04 | 05 | 06 | 12 |
2016 | 01 | 11 | 12 |
2017 | 03 | 04 | 05 | 06 |

2017/06/07 (水)

[]APIとか言われましても…な人向けの便利機能(UCS ManagerのGUI操作をスクリプトに自動変換)

CiscoはUCSの管理操作をPowerShellから実行するためのPowerToolと呼ばれるCmdletプラグインや、Pythonから実行するためのPython SDKなどを提供している。PowerToolの方はもう正式サポート範囲なのでcisco.comから、Python SDKの方はまだバージョン0.9扱いでコミュニティサイトから入手する形になっている(どちらもDevNet経由でも入手可能)。

PowerToolの方のオブジェクト数を数えてみると2300を超えている。基本的にUCS ManagerのGUI操作でできることは、PowerToolを用いたPowerShellスクリプトでも操作できるといっていい。

f:id:takaochan:20170606163901p:image

でも、だからといってすぐにスクリプトを活用した運用を実践できるかというと、なかなか難しいであろうこともまた事実。ちょっと頑張れば人力処理で片付いてしまう設定変更などをスクリプト化する労力をかけるかどうか迷っているうちにずるずると、といった場面も多いんじゃないかと思う。

そんな場合に便利なのが、GUI操作をスクリプトに変換してくれる機能。もちろん、これだけで運用に必要なスクリプトを準備できるわけではないけれども、GUI操作とスクリプトを結びつけて確認することができるので、スクリプトをどう書けばよいのか参考にすることができるし、まずはパラメータを手作業で修正して使用するだけでも、GUI操作あるあるであるオペミスを削減することもできるだろう。次に変数部分を代入できるようにすれば、立派に自動化の第一歩だし、さらに繰り返し処理で展開や構成変更などをできるようにしてしまえば、オペミスも無ければ無駄なことに時間が取られることもない、ステキな運用が実現できる。

現状、UCS ManagerにはJavaアプレット版とHTML5版がある。方法は違えども、どちらを利用した場合でもGUI操作をスクリプトに変換できる。

Java版の場合はローカルでネイティブアプリ(JavaVM経由ではあるけれど)として動作するので、ログファイルをリアルタイムで監視することによって操作を即スクリプトに変換させることができる。

f:id:takaochan:20170606163902p:image

HTML5版の場合は、ログファイルをローカルに吐き出すことがちょっとむずかしいので、操作ログをXMLとして生成した上で、それを元にスクリプトを生成させるという手順になる。下記のように、HTML5版のUCS Managerにログイン後、Ctrl-Alt-Qを押すと画面上部に[Record XML]というリンクが表示されるので、ログに記録したい操作を開始する前にクリックし、必要な操作を終えたら再度同じ場所にある[Stop XML Recording]というリンクをクリックしてログファイルを出力させればよい。

f:id:takaochan:20170606163903p:image

あとはJava版の場合とほぼおなじ。ただし、リアルタイムでは変換は行えないし、ログファイルを指定する必要がある。

f:id:takaochan:20170606163904p:image

このログファイルからは、PowerShellスクリプトだけでなく、Python SDKを用いてPythonスクリプトに変換することもできる。

f:id:takaochan:20170606163905p:image

まずはこうした機能を使って、何度も繰り返すことが多いGUI操作からスクリプト化してみる、という辺りから始めてみるのはいかがでしょうか?

2017/03/24 (金)

[] Java Web Startのアプリケーション (.jnlp) で unable to launch the application となって起動しない場合の対処方法

備忘録メモ。はやくフロントエンドのJavaは全部HTML5に置き換わればいいのさ。

  • Java Control Panel
    • [General] - [Network Settings]でProxy経由になっている場合は "Direct Connection" にしてみる
    • [General] - [Settings]で[Delete Files]をしてみる
    • [Security] - [Exception Site list]に対象のアドレスを追記してみる
  • 以下のあたりをフォルダごとごっそり消してみる。
    • C:\Users\username\AppData\Local\Sun
    • C:\Users\username\AppData\Local\Oracle
    • C:\Users\username\AppData\LocalLow\Sun
    • C:\Users\username\AppData\Roaming\Oracle

Detailsを表示させた際に以下の例のように (Unknown Source) とかなっている状態の場合は、おそらくこれで改善する。…たぶん。

com.sun.deploy.net.FailedDownloadException: Unable to load resource: https://x.x.x.x/ucsm/unpacked/ccore.jar
at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
at com.sun.deploy.net.DownloadEngine.downloadResource(Unknown Source)
at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
at com.sun.javaws.LaunchDownload$DownloadTask.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

もちろん、自己責任で。