LoginSignup
3
3

More than 5 years have passed since last update.

【連載01】212.環境変数を設定する

Last updated at Posted at 2016-02-15

当記事はケーススタディの連載となっています。目次は【こちら】です。
最新のソースコードは【GitHub】で公開中です。
サーバの責務はこちらで確認ください。

1.環境変数(shellの自動起動スクリプト実行)設定概要

image

2.playbookファイルの相関

image

3.playbook(site.yml)

${ANSIBLE_HOME}/site.yml
メインとなるplaybook(site.yml)参照

4.環境変数(shellの自動起動スクリプト実行)設定のplaybook(/operations/0091_env.yml)

${ANSIBLE_HOME}/operations/0091_env.yml

playbook中のコメントの補足に関しては「6.補足説明」を参照。

# ===================
# ログイン時に読み混むbash_profile用ファイルを配置(profile_init.sh)
# ===================
- hosts: all
  sudo: no
  remote_user: root
  tasks:

# ===================
#  すべてのユーザーで使用する環境変数や
# 初期処理を記述したファイルを/etc/profile.d/配下におく。
# ===================
    - name: 環境変数のコピー
      shell: cp /var/opt/data/nfs/os/settings/profile_init.sh /etc/profile.d/profile_init.sh #【4.A:
単純にファイルを/etc/profile.d/配下にコピー】

5.起動スクリプト

${ANSIBLE_HOME}/sendfiles/os/settings/profile_init.sh

profile_init.sh
#!/bin/bash

#ホスト名を登録
admin=adminserv01
db=dbserv01
ap=apserv01

host=$HOST

#HISTORYを各端末で個別に作らない。
function share_history {
    history -a
    history -c
    history -r
}
PROMPT_COMMAND='share_history'
shopt -u histappend
export HISTSIZE=9999

#すべての共通
alias vi='vim'

#APサーバとADMINサーバはJAVAを使用する
if [ "$host" = "$ap" -o "$host" = "$admin" ]; then
  export JAVA_HOME=/usr/java/default
  export CATALINA_HOME=/opt/tomcat
  export CATALINA_BASE=/opt/tomcat
  export PATH=${JAVA_HOME}/bin:${CATALINA_HOME}/bin:${PATH}
fi

if [ "$host" = "$admin" ]; then
  export MAVEN_HOME=/opt/maven
  export PATH=${MAVEN_HOME}/bin:${PATH}
fi

#RVENV実行                  
#export RBENV_HOME=~/.rbenv
#export PATH=${RBENV_HOME}/bin:${PATH}
#eval "$(rbenv init -)" >/dev/null 2>&1
if [ $USER = "root" ]; then                                         
export RBENV_HOME=/root/.rbenv
export PATH=${RBENV_HOME}/bin:${PATH}
#REPLACE_EXECRBENV #【5.A:Rubyを後ほどrvenvでインストールした後#REPLACE_EXECRBENVをreplaceモジュールで置換】

fi

6.補足説明

4.A、5.Aについて。

/etc/profile.d配下に配置する起動スクリプトを単純にコピーする。
shellの内容はvimのalias設定やJAVA_HOMEの設定など一般的な設定。
【5.A】の部分は後ほどrubyインストール後に置換する。
※ruby実行ユーザーがrootなのはご愛嬌です(笑)

7.補足の補足(注意)

今回は事前にファイルを作成してそれを転送して終わるが、profile.d配下に配置するshをAnsibleのreplaceモジュールやlineinfileモジュールにて実装するのもいいかと思う。その場合、より効果の高い冪等性が得られると思う。
ただし冪等性を重要視するあまり、コストが高くなる可能性がある。我々がやることは冪等性を完全に守ることではなく、限られた時間の中で、より安全にサーバーを構築することかと思う。メリット/デメリットを考えて最良な選択をする事が重要だと思う。


次回は「213.NMONのインストール・配置」について。

連載の目次は【こちら】です。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3