SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

LINEフロントエンドレンジャーのWeb開発術

フロントエンド開発環境構築のためのAnsible入門

LINEフロントエンドレンジャーのWeb開発術 第7回

  • X ポスト
  • このエントリーをはてなブックマークに追加

Playbookを実行する

 最後に、Playbookを実行します。完成したroles/nodejs/tasks/main.ymlは以下のようになります。

- name: download nodebrew
  get_url:
    url: http://git.io/nodebrew
    dest: ~/nodebrew
  register: nodebrew_download

- name: install nodebrew
  shell: perl ~/nodebrew setup
  when: nodebrew_download|changed

- name: installed check
  shell: nodebrew list | grep {{ nodejs_version }}
  ignore_errors: True
  register: nodejs_installed

- name: install nodejs
  shell: nodebrew install-binary {{ nodejs_version }}
  when: nodejs_installed|failed

- name: swhich version
  shell: nodebrew use {{ nodejs_version }}

- name: export nodebrew path
  lineinfile:
    dest: ~/.bash_profile
    state: present
    create: yes
    line: 'export PATH={{nodebrew_path}}:$PATH'

 問題がなければ、下記のように出力されます。

$ ansible-playbook -i hosts site.yml

PLAY [localhost] **************************************************************

GATHERING FACTS ***************************************************************
ok: [127.0.0.1]

TASK: [nodejs | download nodebrew] ********************************************
changed: [127.0.0.1]

TASK: [nodejs | install nodebrew] *********************************************
changed: [127.0.0.1]

TASK: [nodejs | export nodebrew path] *****************************************
changed: [127.0.0.1]

TASK: [nodejs | installed check] **********************************************
changed: [127.0.0.1]

TASK: [nodejs | install nodejs] ***********************************************
changed: [127.0.0.1]

TASK: [nodejs | swhich version] ***********************************************
changed: [127.0.0.1]

PLAY RECAP ********************************************************************
127.0.0.1                  : ok=6    changed=6    unreachable=0    failed=0

 また、Ansibleを再度実行すると、いくつかのタスクがスキップされ、べき等性が保たれていることが分かります。

$ ansible-playbook -i hosts site.yml

GATHERING FACTS ***************************************************************
ok: [127.0.0.1]

TASK: [nodejs | download nodebrew] ********************************************
ok: [127.0.0.1]

TASK: [nodejs | install nodebrew] *********************************************
changed: [127.0.0.1]

TASK: [nodejs | export nodebrew path] *****************************************
ok: [127.0.0.1]

TASK: [nodejs | installed check] **********************************************
changed: [127.0.0.1]

TASK: [nodejs | install nodejs] ***********************************************
skipping: [127.0.0.1]

TASK: [nodejs | swhich version] ***********************************************
changed: [127.0.0.1]

PLAY RECAP ********************************************************************
127.0.0.1                  : ok=6    changed=4    unreachable=0    failed=0

まとめ

 いかがでしたでしょうか。Ansibleはシンプルな書式ながら、今回紹介した以外にも多くのmoduleやoptionが存在します。使いこなすことで、多くのことが実現可能なので、ぜひチャレンジしてみてください。

 LINE株式会社では、さまざまな分野のスキルをもつフロントエンドエンジニアを募集しています。私たちと一緒にプラットフォーム・グローバル展開を発展させていきたい方はぜひご応募ください。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
LINEフロントエンドレンジャーのWeb開発術連載記事一覧

もっと読む

この記事の著者

川崎 康平(LINE株式会社)(カワサキ コウヘイ)

デジタルマーケティングの代理店にて、プロダクトサイトのインタラクションやデジタルサイネージの制作に携わった後、現在はLINE株式会社のJavaScriptエンジニアとして、Webサービスの開発を担当。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8954 2015/10/02 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング