ログってなんぼ

エンジニアのメモです

ansible

Windowsホスト+Vagrantのプロビジョニングにansible_localを使う

Vagrant環境のプロビジョニングにAnsibleを使っています。 Windows環境ではansibleをインストールすることが出来ないので、ホスト側のAnsibleを使うのではなく、ゲストOSにAnsibleを入れてそちらを使うようにする対応です。 Vagrantfile config.vm.provision…

Ansibleで「AnsibleError: template error while templating string: Encountered unknown tag 」エラー

Ansibleでphp-fpmのwww.confを更新しようと思ってレシピとテンプレートを書いて実行したら fatal: [HOSTNAME]: FAILED! => {"changed": false, "failed": true, "msg": "AnsibleError: template error while templating string: Encountered unknown tag 'Y'…

Ansible:任意のタスクから実行したり対話式でtaskを実行したり

Start and Step — Ansible Documentation $ ansible-playbook hoge.yml --start-at='crond' --step --start-at=を使うと任意のnameから処理を実行できます。 --stepでステップ実行。 実行例 $ ansible-playbook hoge.yml --start-at='crond' --step PLAY [ho…

Ansible:特定のホストに対してyum updateを行う

ansible 2.1.0.0にて。 特定のホスト、またはホストグループに対してyum -y updateを実行してみるメモ。 log01にのみsudo yum -y updateを実行したい場合を例として hostsの例 $ cat hosts [app] app01 ansible_host=xxx.xxx.xxx.xxx [log] log01 ansible_ho…

ansible:inventory_hostnameを使って条件つき実行

productionサーバーとstagingサーバーで同じroleを使っているが、td-agentだけはstagingに必要ない場合 Variables — Ansible Documentation 一例ですがinventory_hostnameで現在playbook実行中のホスト名(linuxのhostnameじゃないよ)が取得可能 - name: td…

「zabbixでmysqlを監視する」をansibleで。

zabbix2.2使用中につき、zabbix-agentをインストールすると勝手に出来てる/etc/zabbix/zabbix_agentd.d/userparameter_mysql.confを活用させてもらおうってことでメモ。 - name: zabbix用mysqlユーザーの作成 shell: bash -lc "mysql -uUSERNAME DBNAME -e'g…

Ansible : templateに変数を使って環境の違い(production/staging)に対応する

同一のroleをproductionとstagingで共有するときのメモ vars: で固有の変数を定義 virtualhostのServerNameとPassengerのENVをそれぞれ設定してみた。 production.yml --- - hosts: app vars: app_env: production servername_app: example.com roles: - app…

Ansible:ansible.cfgのremote_userをhosts内で上書きする

一つだけvagrantでログインしたいけど、他のサーバーはhogeuserでsshしたい時など ansible.cfg [defaults] hostfile = ./hosts remote_user = hogeuser hosts ansible_userで上書き可能 [basicimage] basic ansible_host=xxx.xxx.xxx.xxx [test] app101 ansi…

Ansible:本番環境に流すplaybookをvagrantのVMでテストする

本番でplaybookを流すユーザー名がvagrantじゃない 本番サーバーの種類(グループ)ごとにVM作りたくない 複数のroleについて同時進行でplaybookを書くことはほとんど無いので、一つのVMを使いまわしたい 今の自分のやり方 使うVMは一つだけ upとdestroyで作…

Ansible:main.yml内で別のtaskをincludeする

taskが長くなってきたのでincludeを使ってみたメモ Playbook Roles and Include Statements — Ansible Documentation ファイル構成 main.ymlの他にzabbix.ymlを追加 include --- - include: tasks/zabbix.yml 簡単でした 初めてのAnsible作者: Lorin Hochste…

Ansible:pipeliningを使ってplaybookの実行を高速化

http://docs.ansible.com/ansible/intro_configuration.html#pipelining playbookが大きくなってきたら更に恩恵ありそうな予感がする結果となったため作業内容をメモ。 普通に実行した時の実測値がこちら PLAY RECAP **************************************…

ansibleでcronをセットする

cron - Manage cron.d and crontab entries. — Ansible Documentation ここを見ながら。 タスクを追加 実行するスクリプトとcronモジュール - name: ダンプスクリプトの配置 become: True template: src=roles/db_slave/templates/dump_to_rds.sh.j2 dest=/u…

ansibleでディレクトリの存在チェックをする

ディレクトリを作成するタスクに、ディレクトリの存在チェックを導入するメモ 失敗例 普通にディレクトリを作成 - name: ディレクトリを作る become: True file: path={{ file_mountpoint }} state=directory owner=root group=root mode=0755 2回目以降の実…

ansible : エラーを無視して先へ進むオプション

ansible助かってます^q^ 本番環境での使いドコロがちょっと今すぐ思いつかないですが、エラーで止まってしまった場合、そこで処理を中断せずに無視して先の処理へ進むようにすることができるのを知りました。 Error Handling In Playbooks — Ansible Docu…

Ansible:roleを用いてrbenvとrubyをインストールする

appロールを作り、rbenvとrubyをインストールして使用できるようにするメモ hosts [app] app01 ansible_host=xxx.xxx.xxx.xxx app.yml --- - hosts: app roles: - app roles/app/tasks/main.yml --- - name: 開発ツールをインストール become: True yum: nam…

ansible : NFSクライアントを構成する

nfs関連のミドルウェアをインストールして、任意のNFSをマウントするまで CentOS6.5。 roles/app/defaults/main.yml --- file_mountpoint: /path_to_mountpoint file_server: xxx.xxx.xxx.xxx roles/app/tasks/main.yml - name: NFSクライアントをインストー…

ansible : 設定ファイルの優先順位

ansible.cfgの置き場所について ansibleの設定ファイルであるansible.cfgの置き場所には優先順位がある 環境変数 ANSIBLE_CONFIG にて指定されたパス カレントディレクトリの ansible.cfg (./ansible.cfg) ユーザーHOMEの .ansible.cfg (~/.ansible.cfg) /et…

ansible:notifyとhandlerを使ってサービスを再起動する

またメモ。 - hosts: all become: True tasks: - name: stop root login via ssh lineinfile: dest: /etc/ssh/sshd_config state: present regexp: "^PermitRootLogin without-password" line: "PermitRootLogin no" backup: yes backrefs: yes validate: "s…

ansible:sudo可能なユーザーを作成し、authorized_keyを更新する

単なる作業メモ --- - hosts: all become: True tasks: - name: add a new user user: name=hogeuser state=present - name: add a sudo user lineinfile: "dest=/etc/sudoers backup=yes state=present regexp='^hogeuser' line='hogeuser ALL=(ALL) NOPASS…

ansibleを試してみたメモ

CentOS6のサーバーに対して、ローカルのmacからansibleを使って見たメモ macにansibleをインストールする Homebrew なら簡単にインストール可能 $ brew install ansible インベントリを作る デフォルトでは hosts というファイルを探す。ansible.cfgで上書き…

オライリー・ジャパンから日本語版Ansible本、4/16発売

オライリー・ジャパンからAnsible本の日本語訳版が発売とな。 O'Reilly Japan - 初めてのAnsible www.oreilly.co.jp 本書はサーバーの構成管理ツールAnsibleについての総合的な入門書です。設定管理のスクリプトであるPlaybookの基礎から、オープンソースの…