はじめに
Ansibleでサーバ・ローカルPCのプロビジョニングを行う場合に、構成を記述するのがplaybookファイルです。
一度構成を作ると当分触らないので、書き方を忘れますね、、
Ansibleの公式ドキュメントにあるテンプレートくらいわかれば十分使えるのでテンプレートの構文をとりあえず忘れないようにメモしておきます。
実際はテンプレートをコピーして、ドキュメントを見ながら書き換えてplaybookファイルを作るのが早いと思います。
公式ドキュメント:
http://docs.ansible.com/
playbookのテンプレート構文
構成はyamlという構造化されたデータを表現するためのフォーマットで記述します。
yamlの拡張子はymlでファイルの先頭に—を書くのが決まりになっています。
公式ドキュメントに記載されているテンプレートです
—
- hosts: webservers
vars:
http_port: 80
max_clients: 200
remote_user: root
tasks:
– name: ensure apache is at the latest version
yum: pkg=httpd state=latest
– name: write the apache config file
template: src=/srv/httpd.j2 dest=/etc/httpd.conf
notify:
– restart apache
– name: ensure apache is running (and enable it at boot)
service: name=httpd state=started enabled=yes
handlers:
– name: restart apache
service: name=httpd state=restarted
http://docs.ansible.com/playbooks_intro.html
hosts,vars,tasks,handlersなどの第一番目の構文については以下のドキュメントページより詳細を確認できます
http://docs.ansible.com/glossary.html
[ hosts: webservers ] とInventoryファイルについて
hostsは対象のサーバ(またはローカル)を指定します
※先頭のハイフンはyamlで配列を示しています
- hosts: webservers
webserversの宣言をInventoryファイルに作成する必要があります。
ファイル名は任意ですがhostsというファイル名が一般的です。
hostsファイル
[webservers]
190.168.10.10
webserversグループのipアドレスを指定のようにして使います。※ipアドレスはサーバ(またはローカル)のアドレスとすること
vars
varsでplaybook内で使用する変数を指定します
vars:
http_port: 80
max_clients: 200
yamlではkey:[半角スペース]valueという書き方でハッシュを表します。
keyはhttp_portでvalueは80という具合になります。
このテンプレートでは変数宣言のみで使用していませんが、、(使ってるんでしょうか??どこか別でコールしてるのかもしれません・・・)
使用する場合は{{変数名}}のように中カッコ2つで囲って使えます。
remote_user
接続先のユーザを指定します
remote_user: root
tasks
指定したサーバ(またはローカル)指定したサーバ(またはローカル)で実行するタスクを指定します
tasks:
– name: ensure apache is at the latest version
yum: pkg=httpd state=latest
– name: write the apache config file
template: src=/srv/httpd.j2 dest=/etc/httpd.conf
notify:
– restart apache
– name: ensure apache is running (and enable it at boot)
service: name=httpd state=started enabled=yes
上記では3つのタスクを指定しています。nameでタスクに対して任意の名前を指定しています。
yumはyumコマンドの実行で行う処理を指定します。pkg(そんなオプションない)は、、、おそらく誤りでnameのことだと思います。
正しくは
– name: ensure apache is at the latest version
yum: name=httpd state=latest
この場合httpdのstateがlatestなので最新版をインストールするという意味になります。
templete,serviseもドキュメントを確認してください。
http://docs.ansible.com/yum_module.html
notifyについてですが、こちらは次のhandlersと関わっています。
notifyで指定する名前はhandlersで定義されているnameと同じタスク名を指定しなければいけません。
handlers
notifyで呼ばれた場合に一度だけ実行するタスクを指定します
handlers:
– name: restart apache
service: name=httpd state=restarted
notifyで呼ばない限り実行されません。
httpdサービスを再起動するという意味になります。
playbookを実行する
playbookファイルplaybook.ymlでinventoryファイルhostsの場合は以下のように実行します
ansible-playbook -i hosts -vv playbook.yml
-vvはデバッグ情報を出力してくれます
coffee-break
Don't write code that useless.
1日5杯はコーヒー、カフェオレ飲みます。狭心症のため安静にします☆松本 雄貴
Kotlinでサービスリリース目指す!
iOSでチャットアプリ作成中。自然言語解析LSIを習得中
Mac / Android・iOS / Rails / Oracle
2017年 Lpic L2取得
2012年 Android技術者資格取得
2010年 OracleMasterGold10g取得
2008年 CCNAQiitaもたまに投稿
https://qiita.com/y-matsumoto東京近郊で常駐開発探してる方はこちらよりご連絡ください
SES企業でパートナー会社を探している企業様はこちらよりご連絡ください
スプリットカメラ iOS / Android
音声認識で聞いた日付から曜日当てアプリ Android
ソーシャルタイマー Android
カテゴリー
- ActiveRecord (2)
- Android (52)
- AndroidStudio (10)
- Ansible (1)
- AWS (1)
- Bash (18)
- Blog (7)
- BootStrap (1)
- CentOS (16)
- Chef (1)
- css (2)
- Eclipse (5)
- error (1)
- Facebook (2)
- Firebase (1)
- FuelPHP (16)
- Git (22)
- GitHub (3)
- Gradle (2)
- GraphAPI (1)
- Grunt (1)
- heroku (2)
- illustrator (1)
- iOS (17)
- Java (4)
- Jenkins (1)
- jQuery (3)
- Kotlin (2)
- Mac (22)
- nginx (1)
- Node.js (3)
- peco (1)
- php (5)
- Python (1)
- Rails (16)
- Ruby (11)
- shell (1)
- SNS (1)
- Swift (2)
- tmux (2)
- Vagrant (6)
- Vim (6)
- windows (2)
- WordPress (3)
- zsh (4)
- フリーランス (1)
- ライブラリ (1)
- 勉強会 (2)
- 宣伝 (1)
- 未分類 (2)
最近の投稿
- [MAC]HighSierraでgitプッシュエラー「Unable to negotiate with xxx.xxx.xxx.xxx port xx: no matching cipher found. Their offer: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se fatal: Could not read from remote repository.」
- [iOS]iOS11からFacebook,Twitter連携(シェアなど)廃止の対応方法
- [iOS]速報2017AppleSpecialEventのiOS11、iPhone8など発表内容について
- [iOS][Firebase]The default Firebase app has not yet been configured. Add `[FIRApp configure];
- [iOS]2017年9月リリースのiOS11で開発者が対応するべきこと
- 今人気の現金化サービスCASH(キャッシュ)を使ったレビュー
- [Pandoc][Mac]pandocでmarkdownからwordファイル作成
- [Android]映画サマーウォーズの聞いた日付(誕生日)から曜日当てをアプリ音声認識で簡単に実現
- [Android]起動しているActivityを取得するadb shell コマンド
- [Android][Kotlin]kotlin学習で参考になるサイト一覧
2023年10月 月 火 水 木 金 土 日 « 5月 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 アーカイブ
- 2018年5月
- 2017年9月
- 2017年8月
- 2017年7月
- 2017年6月
- 2017年5月
- 2017年2月
- 2017年1月
- 2016年12月
- 2016年7月
- 2016年6月
- 2016年1月
- 2015年12月
- 2015年11月
- 2015年10月
- 2015年9月
- 2015年8月
- 2015年7月
- 2015年6月
- 2015年5月
- 2015年4月
- 2015年3月
- 2015年2月
- 2015年1月
- 2014年12月
- 2014年11月
- 2014年6月
- 2014年5月
- 2014年4月
- 2014年3月
- 2014年2月
- 2014年1月
- 2013年12月
- 2013年11月
- 2013年9月
- 2013年8月
- 2013年7月
- 2013年6月
- 2013年5月
- 2013年4月
- 2013年3月
- 2013年2月
- 2013年1月
- 2012年12月
- 2012年10月
- 2012年5月
- 2010年6月
エントリ