「ansible」タグアーカイブ
Ansible-playbook:Composer&Laravelインストール
laravel.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
- hosts: all user: root tasks: - name: コンポーザのインストール shell: curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin creates=/usr/local/bin/composer tags: composer - name: 名前変更 composer.phar → composer command: mv /usr/local/bin/composer.phar /usr/local/bin/composer creates=/usr/local/bin/composer tags: composer - name: 実行権限を付ける file: path=/usr/local/bin/composer mode=a+x state=file tags: composer - name: コンポーザのアップデート command: composer self-update - name: laravel フレームワークインストール command: composer global require "laravel/installer=~1.1" |
1 |
ansible-playbook laravel.yml -i hosts -k -vvv -c paramiko |
laravelについてはここら辺を参照
Ansible-playbook:lamp.yml
LAMP環境を一括して作っちゃうプレイブック。M は流行の Maria-DB、phpMyAdmin まで入れているので
不要な方は適宜コメントアウトしてちょ
全パッケージを最新にして SELinux を無効にするプレイブック。後ろのやつで include している。
最初に一回やれば OK なので、直接実行して、後ろのプレイブックでコメントアウトしても OK。
subUpdateAndSelinuxOff.yml
1 2 3 4 5 6 7 |
--- - name: 全パッケージをアップデート yum: name=* state=latest - name: SELinux を無効にする command: setenforce 0 - replace: dest=/etc/sysconfig/selinux regexp="SELINUX *= *enforcing" replace="SELINUX=disabled" |
lamp.yml
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# Centos7での lamp の設定 # 常に最新の状態にする # mysqlエンジンは maria-db - hosts: all user: root tasks: - include: subUpdateAndSelinuxOff.yml - name: EPELをインストールして、無効にしておく yum: name=epel-release state=latest - copy: src=/etc/yum.repos.d/epel.repo dest=/etc/yum.repos.d/epel.repo.org follow=no - replace: dest=/etc/yum.repos.d/epel.repo regexp="enabled *= *1" replace="enabled=0" - name: apache, php インストール yum: name={{item}} state=latest with_items: - httpd - mariadb-server - php - php-mbstring - php-mysql - name: phpmyadmin インストール yum: name=phpmyadmin state=latest enablerepo=epel - name: httpポートを空ける command: firewall-cmd --add-service=http --zone=public --permanent - command: firewall-cmd --reload - name: httpd.confの修正 shell: >- c='/etc/httpd/conf/httpd.conf' && k='<Directory "\/var\/www\/html">' && t='AllowOverride None' && s='/None$/' && r='All' && mv $c $c.backup && awk "/$k/{f=1} f==1&&/$t/{sub($s,\"$r\"); f=0} 1" $c.backup > $c - name: php config action: ini_file dest=/etc/php.ini section=Date option=date.timezone value=Asia/Tokyo mode=0644 - name: 有効化+実行 service: name={{item}} state=running enabled=yes with_items: - mariadb - httpd # # vi /etc/httpd/conf.d/phpMyAdmin.conf # Require ip 接続するIPアドレス(例:172.16.0) を追加しないと外部から接続できない。 # # /usr/bin/mysql_secure_installation を実行して mariadb の設定をする(対話型) # 最初に聞かれる root パスワードは root ログインのパスワードではなくそのままリターンするのが正解 # DBに接続するために設定した root のパスワードは忘れない事 # # それが終わったら httpd をリスタート # systemctl restart mariadb # systemctl restart httpd |
以下の様に実行する。
1 |
ansible-playbook lamp.yml -i hosts -k -vvv -c paramiko |
後は (yes/no)? の部分でリターンを押すだけ。
処理が終わったら、最後のコメントの部分を手動で実行する。
でも、これだと標準で入る PHP のバージョンが5.4.16。laravel4.2 は使えるけれど
laravel5 の動作要件は PHP 5.5.9 以上なので使えないね。
OSが Ubuntu で Webサーバが nginx で良いなら Homestead を使うという手もあるらしい。
Homestead
構成管理ツール Ansible
ansible とは構成管理ツールの一つ。構成管理ツールというと Chef とか Puppet が有名だが
- ansible は比較的軽い。
- 管理する側に特殊なエージェントが要らない
- yaml形式のファイルで管理するので学習コストが低い
等の利点がある。ラズパイでも動く。
下のは CentOS7 に ansible をインストールするシェル
ユーザのホームに ansible というディレクトリを作る。
プレイブックをこの中に入れて Usage の様に実行すれば OK!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#!/bin/sh # # centos7 に epel と ansible をインストールする。 yum install -y epel-release cp -p /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.org sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/epel.repo yum --enablerepo=epel -y install ansible # vagrant 用の作業ディレクトリを用意 mkdir ~/ansible cd ~/ansible echo 127.0.0.1 > hosts # Usage: ansible-playbook プレイブック.yml -k -vvv -c local |