2015年8月11日火曜日

Ansibleのインストール


一般的には構成管理ツールと言われていたりするAnsibleのCentOS6.5へのインストール方法について。
#余談だけど、CentOSの6.7がリリースしたみたいですね。2015-08-10

はじめに、RHELやCentOS系のディストリビューションの場合、
epelリポジトリから、AnsibleのRPMパッケージをインストールできる。
(標準yumリポジトリでは提供されていない様子)

$ rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
これでyumをつかってansibleパッケージをインストールできる。
$ yum install ansible
インストールされると、/etc/ansibleディレクトリが作成されている。

構成管理ツールの括りでは、
Puppet、Chef、Salt、Ansibleなどがよく知られているようだけど、
エージェントのインストールが不要である点と設定ファイルの可読性が高い点から、
僕はAnsibleが1番なじみやすいと感じた。

また、AnsibleTowerというAnsibleを簡単便利にGUIでさわれるツールもある。
RESTで使う為のCLIでもある。
導入はAnsibleをいれたサーバにansible-tower-setup-latest.gzを入れてシェルを実行するだけ。

さらに、Ansibleの処理(Roleと呼ばれる)が共有されたAnsible Galaxyから、
ansible-galaxyコマンドでとても簡単に共有されたroleを引っ張ってくることができる。
ざっとみたところ、AnsibleGalaxyにあるネタは
RDBMS各種、couchbase、Redis、MongoDB、rabbitmq
ElasticSearch、Kibana、OpenStack、owncloud、docker、eucalyptus、fluentd、zabbix、solr、cassandra...などなど。
DBあたりを中心にみたので、Hadoopとか他にもいろいろありそう。

その他にも記しておきたいことがあるのでまたこんど。


2015年8月9日日曜日

ちょっとしたプログラムを書きました。(C言語で電卓をつくる編)

課題内容:2つの数値の演算を行う電卓を作成する。(まずは)C

1.処理概要 起動パラメータとして「x」と「y」の2つの整数、演算子を受け取り、 足し算と引き算と、その足し算と引き算だけを使って割り算または、掛け算を行い答えを表示する。
2.入力パラメータ仕様 入力パラメータは、起動パラメータとして受け取る。
x 演算子 y
また、終了時は、quitもしくはexitで終了させる。
3.入力チェック仕様 入力パラメータは、以下の規則によりチェックする。
x:数値であること                       
y:数値であること                    
式:+、-、÷、×であること  
4.計算
(a)足し算
(b)引き算
(c) 割算 xからyを繰り返し引きます。 x<y となるまで繰り返します。 繰り返した回数が商となる。
(d) 掛算 xを答えに繰り返し足します。 足した回数がyとイコールとなるまで繰り返す。
5.出力編集 出力はコンソールに行うものとし、以下の形式で出力する。
N:式
--------------------------------
99999 N 99999 = 99999 ... 99999
6.例外処理
以下の場合はエラーとしメッセージを出力する。
ゼロ除算:yがゼロである            →       0割りはできません
7.制約事項 本計算機システムは整数(正数)のみの対応とする。
以下、作成したサンプルコード。ガサツですが。。。(2015/08/11 エラー処理が未熟なので後でアップデートする)
#include 

int main()
    {
      int x,y,z,i;
      char op;
      char str[1024];
/*1つ目の数値入力判定*/
      do {
              printf("1つ目の数値を入力してください:");
              scanf("%d",&x);
              gets(str);
             } while (str[0]);
             
/*演算子入力判定*/
     printf("演算子を入力してください:");
     scanf("%c",&op);
     switch(op){
              case '-': break;
              case '+': break;
              case '*': break;
              case '/': break;
              default:
              printf("計算式が誤っています\n");
              return 0;
             }
             
/*1つ目の数値入力判定*/
     do {
         printf("2つ目の数値を入力してください:");
         scanf("%d",&y);
         gets(str);
        } while (str[0]);

/*計算部*/
     switch(op){
         case '-': z = x - y; break;
         case '+': z = x + y; break;
         case '*':z=0;
             for(i=1;i<=y;i++){z=z+x;} break;
         case '/':
         /*yがゼロ*/
         if(y==0){printf("ゼロ割りはできません\n");return 0;};
             z=x-y;
         for(i=1;y<=z;i++){z=z-y;}
             z=i; break;
              }
              
/*表示部分*/
     printf("--------------------------------\n"
        "%d %c %d = %d\n",x,op,y,z);
        return 0;

}

2015年8月8日土曜日

The puzzle of motivation.


人がどんなときに最高のパフォーマンスを発揮するかは、すでに科学が証明している。
だけど、科学が証明したことと、実際のビジネスの慣行は異なっている。
ポイントは自主性と成長と目的。