タグ

ブックマーク / akishin.hatenablog.jp (9)

  • Linux サーバでの「Too many open files」対策について - akishin999の日記

    Linux サーバでの「Too many open files」エラー対策について調べたのでまとめてみました。 確認した OS は CentOS 5.9 と CentOS 6.3 です。 「Too many open files」は Linux でプロセスが開けるファイルディスクリプタの上限に達してしまうと発生するエラーです。 「ファイルディスクリプタ」という名前ですが、 Linux ではソケットもファイルディスクリプタなので、ファイルを開いた場合だけでなく、ソケットを使って通信を行う場合にもファイルディスクリプタが使用されます。 そのため、Apache や Tomcat などで高負荷なサイトを運用している場合などには、比較的遭遇する確率の高いエラーではないでしょうか。 このエラーを回避するため、プロセスがオープンできるファイルディスクリプタの上限を変更します。 まずは以下のコマンドを実行

    Linux サーバでの「Too many open files」対策について - akishin999の日記
  • Vim で英語を書く時に便利なプラグインいくつか - akishin999の日記

    情けない事にいつまで経っても英語は苦手なままなのですが、プログラマたるもの、自分のプログラム内できちんとした名前を付けるためには避けて通る事は出来ません。 とはいえ、毎回毎回 Web で検索するのにも疲れてきたので、 Vim英語を書いたり調べたりするのに便利そうなプラグインを探してインストール、設定してみました。 ref.vim まずは Web 上の辞書サイトなどを Vim から引けるようにするため、ref.vim を導入します。 thinca/vim-ref https://github.com/thinca/vim-ref Web 上の辞書を引くためには ref.vim に含まれる ref-webdict を使うのですが、そのためにはテキストブラウザが必要になります。 ref-webdict では以下のテキストブラウザに対応しているようです。 elinks w3m links ly

    Vim で英語を書く時に便利なプラグインいくつか - akishin999の日記
  • Ansible で標準のパス以外の場所に入れた Python を使用する - akishin999の日記

    Ansible はデフォルトではリモートのホストに入っている標準の python を使用します。 これを virtualenv 環境など、標準のパス以外の場所の python を使いたい場合には、ansible_python_interpreter 変数で python インタプリタのパスを指定するようです。 List of Behavioral Inventory Parameters http://docs.ansible.com/ansible/latest/intro_inventory.html#list-of-behavioral-inventory-parameters vars: ansible_python_interpreter="/root/python-venv/bin/python" ただ、手元の CentOS 6.4 環境で、この方法で virtualenv 環

    Ansible で標準のパス以外の場所に入れた Python を使用する - akishin999の日記
  • 条件によって実行する task を定義する - akishin999の日記

    when による条件分岐について調べたのでまとめておきます。 host の情報や他のコマンドの実行結果の値により実行する task を定義する事が出来ます。 task を実行するための条件は when 句で指定します。 when 句では変数を指定できるので、例えば --extra-vars を使用して以下のように外部から実行条件を指定する事ができます。 when.yml --- - user: root hosts: all tasks: - name: install mlocate yum: name=mlocate state=installed when: install == "y" when 句での変数の参照には ${} や {{}} は付けない事に注意。 実行時には以下のように変数 install の値を渡します。 「y」以外の値を渡すと task の実行が skip される

    条件によって実行する task を定義する - akishin999の日記
  • Playbook 実行時に任意の値を指定する - akishin999の日記

    Playbook 内に直接値を定義せず、実行時に外部から値を渡したい場合、 --extra-vars 引数を使う方法と vars_prompt を使う方法があります。 --extra-vars Passing Variables On The Command Line http://docs.ansible.com/ansible/playbooks_variables.html#passing-variables-on-the-command-line ※ www.ansibleworks.com は使われなくなったようなので URL を修正 予め Playbook 内で変数を使用しておき、 ansible-playbook コマンドの実行時に --extra-vars オプションによって実際の変数の値を渡す事が出来ます。 Playbook は以下のような感じで定義します。 extra-

    Playbook 実行時に任意の値を指定する - akishin999の日記
  • 20分(くらい)で GitLab をインストールする方法 - akishin999の日記

    この間構築手順を書きましたが、改めて見ると GitLab の構築って結構手間がかかって面倒臭いですよね。 私の周りでも構築は面倒というような話をよく聞きます。 こんな時こそ自動化だ、という訳で Ansible で GitLab インストール用の Playbook 書いてみました。 https://github.com/akishin/ansible-playbooks/tree/master/gitlab clone して hosts というファイルの中に対象サーバのホスト名か IP アドレスを記述します。 % git clone git://github.com/akishin/ansible-playbooks.git % cd ansible-playbooks/gitlab % vi hosts # 対象サーバを記述 準備が出来たら ansible-playbook 実行。 % a

    20分(くらい)で GitLab をインストールする方法 - akishin999の日記
  • Ansible の Playbook を使ってみる - akishin999の日記

    構成管理ツール Ansible を使ってみる の続きです。 今回は Playbook について調べた事をまとめてみます。 Playbook は Ansible のモジュールを使用した処理の組合せにより対象サーバの構成を記述したものです。 例えば Apache を使用して Web サーバを構築する場合、単に yum で Apache をインストールして完了、という事はなく、その後 httpd.conf の内容を適切に設定したり、iptables でポートを開けたり、といった一連の作業がありますが、そういったサーバ構築のための作業をまとめて Playbook として定義しておく事で、「実行できる手順書」として残しておく事が出来ます。 Puppet で言うところのマニフェスト、Chef でのレシピに相当するものになります。 Ansible の Playbook はフォーマットが YAML なので

    Ansible の Playbook を使ってみる - akishin999の日記
  • 構成管理ツール Ansible を使ってみる - akishin999の日記

    最近は話題のサーバ構成管理ツール Ansible を試したりしています。 Ansible 自体は Python 製ですが、使うに当たっては特に Python の知識は必要とされる事もなく、定義ファイル(Playbook)も YAML ファイルなので気軽に始める事ができました。 また、Capistrano などと同じく SSH で対象サーバに接続さえ出来ればいい、という仕様なので、サーバに余計なパッケージを入れずに済むのも嬉しいです。 その点も Chef や Puppet などより個人的には好みですね。 検証環境は CentOS 6.4 x86_64 になります。 インストール インストールには Python 2.6 以上が必要です。 CentOS 6 系であれば yum で普通に入れれば 2.6 系が入るはずなので問題ないかと思います。 # python -V Python 2.6.6 E

    構成管理ツール Ansible を使ってみる - akishin999の日記
  • Ansible で複数行の文字列置換 - akishin999の日記

    ansible で設定ファイル内の文字列を置換したかったので、 lineinfile モジュールを試してみました。 lineinfile http://www.ansibleworks.com/docs/modules.html#lineinfile 対象サーバに以下のようなファイルを用意。 /tmp/test.conf foo bar baz bar bar bar foo このファイル内の文字列を置換してみます。 以下のような Playbook を作成しました。 lineinfile.yml - hosts: all user: root vars: target_file: /tmp/test.conf tasks: - name: lineinfile example task lineinfile: dest=${target_file} state=present regexp

    Ansible で複数行の文字列置換 - akishin999の日記
  • 1