Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

当記事はケーススタディの連載となっています。目次は【こちら】です。
最新のソースコードは【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のインストール・配置」について。

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away