LoginSignup
1
2

More than 5 years have passed since last update.

CentOS6での1台でnfs-server、nfs-clientを動かした時の問題

Posted at

CentOS6での1台でnfs-server、nfs-clientを動かした時の問題

普通に考えたら1台のサーバでnfs-server、nfs-client同時実行で自分自身にnfs mountなんて設定はやらないので問題にはならないとは思いますが、dev環境作成等、本番同様の環境構築を一台で行うときにnfs-serverとnfs-clientが同居した時に起動時、終了時のマウントのタイミングについての問題です。

nfsのマウント、アンマウントのタイミング

nfsサーバの自動起動をONにすると

chkconfig nfs on

rc系に放り込まれるserver側の主要なリンクは以下のとおりとなります

  • /etc/rc3.d/S30nfs
  • /etc/rc0.d/K60nfs
  • /etc/rc6.d/K60nfs

nfsのマウント、アンマウントのタイミングがnetfsで行っているので

  • /etc/rc3.d/S25netfs
  • /etc/rc0.d/K75netfs
  • /etc/rc6.d/K75netfs

明らかに起動時はマウントデーモンが起動前にnfs mountを行い(失敗する)

シャットダウン時はマウントデーモンが死んだ後に unmountを行います(もちろん失敗)

なので、nfs-server、nfs-clientを一台に同居させるときはnetfsの起動、終了のタイミングを変更する必要があります。

netfsの起動、終了のタイミング変更

単純にmvでリネームでOK

# mv /etc/rc3.d/S25netfs /etc/rc3.d/S31netfs
# mv /etc/rc0.d/K75netfs /etc/rc0.d/K50netfs
# mv /etc/rc6.d/K75netfs /etc/rc6.d/K50netfs

これで、起動、終了が問題なく行えます

ansible playbookの作成

こっちが本題です。
上記の事象を加味してansible playbookを作成しようと思ったのですけど、ansibleのマニュアルを読む限り、リモートでのコピーはあるのですがファイルの移動が見当たりません。
(知ってる方いたら求むです)
単純にcommand等でmvを行ったら冪等性が保たれない(再実行でエラーになるかも)なので、真剣にplaybookを書いたらこんな感じなりました。

- name: Check /etc/rc3.d/S25netfs
  stat: path=/etc/rc3.d/S25netfs
  register: rc3netfs

- name: Setting Startup mount timing(develop)
  shell: mv /etc/rc3.d/S25netfs /etc/rc3.d/S31netfs
  when: 
    - inventory_hostname in groups['develop']
    - rc3netfs.stat.exists

- name: Check /etc/rc0.d/K75netfs
  stat: path=/etc/rc0.d/K75netfs
  register: rc0netfs

- name: Setting rc0 unmount timing(develop)
  shell: mv /etc/rc0.d/K75netfs /etc/rc0.d/K50netfs
  when: 
    - inventory_hostname in groups['develop']
    - rc0netfs.stat.exists

- name: Check /etc/rc6.d/K75netfs
  stat: path=/etc/rc6.d/K75netfs
  register: rc6netfs

- name: Setting rc6 unmount timing(develop)
  shell: mv /etc/rc6.d/K75netfs /etc/rc6.d/K50netfs
  when: 
    - inventory_hostname in groups['develop']
    - rc6netfs.stat.exists

※もう一度書け言われると辛いのでメモ書き代わり。。。

1
2
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
1
2