LoginSignup
6
4

More than 5 years have passed since last update.

Ansibleのcopyモジュールで/etc/init.d配下にスクリプトをコピーする時の注意点

Posted at

環境

host os

  • macos10.11.5
  • vagrant1.8.1
  • ansible2.1.0

guest os

  • centos6.7
  • redis3.2.0

ハマったところ

http://redis.io/topics/quickstart を参照しansibleを書いていましたが公式のクイックスタート通りにインストールするとchkconfigにredisを追加できないので、redis_init_scriptファイルに以下の行を追加する必要がありました。

#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
# ここから
# chkconfig:   - 85 15
# description:  redis-server
# processname: redis_6379
# ここまで追加

修正したスクリプトファイルをrole/redis/files/配下に保存し、ansibleのcopyモジュールでゲストOSの/etc/init.d/配下にコピーした後、serviceモジュールで起動+chkconfig追加をしたかったです。

以下のようにansibleのタスクを書きましたが、

- name: copy redis_init_script
  sudo: yes
  copy: src=redis_init_script dest=/etc/init.d/redis_6379

#### 省略 ####

- name: start redis
  sudo: yes
  service: name=redis_6379 state=started enabled=yes

playbookを起動すると以下のように存在しないサービス名ですよだと怒られます。
1__vagrant_localhost____bash_.png

どう解決したのか

理由はものすごく単純でした!! ホストOSからゲストOSに正しくスクリプトがコピーはされていました。
1__vagrant_localhost__etc_init_d__ssh_.png

少し、違和感ありますよね。そうです。redisスクリプトの実行検眼がありませんでした。ansibleのcopyモジュールに権限オプションmode=0755を追加しました。

- name: copy redis_init_script
  sudo: yes
  copy: src=redis_init_script dest=/etc/init.d/redis_6379 mode=0755

これで解決しました。Ansibleって面白いですね。。ww
1__vagrant_localhost____vagrant_.png

6
4
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
6
4