記事のディレクトリ
実 - 複数のLAMP環境を使用してボリュームの展開プレイブック
-
使用プレイブック脚本段階では、より強力かつ柔軟ansibleコマンドラインモードを使用して、別の方法です。
-
アイデア:私たちはLANPアーキテクチャを構築し、約取ります。
-
yumのサービスをインストールします
-
サービス開始
-
サイトのコピーの過去をコピーします
プレイブックでタスクを定義しました。
- 名前:タスクのジョブモジュール名の説明#説明:使用するモジュール名module_args#の必要性:ansible-脚本のコマンド形式を実行します。
[root@ansible ~]# ansible-playbook site.yml
- 例の脚本は、その1つ以上の「遊び」のリストです。劇の主な機能は、ホストのタスクでansible役割によって事前に定義されている服を着て、グループとして事前に分類しています。githubの上でご参考のために多くの例を提供します。
https://github.com/ansible/ansible-examples 4.2
LAMP環境脚本複数頻繁に使用するフォルダの役割を展開。
files
:ストレージは、リモートファイルサーバーのソースコードとコンフィギュレーションファイルに同期させる必要があります。handlers
:サービス構成ファイルの操作が必要に変更した場合、のような:サービスを再起動し、設定ファイル、ハンドラリロード - ハンドラー・メタ:役割の定義を、空白のままにすることができます。tasks
:タスクを実行する必要がある;
-templates
:ランプの設置、通常、スクリプトを実行するためのテンプレートファイルを、vars
:変数定義4.3のインストール
使用脚本バッチデプロイ倍数はLAMP環境ステップ
私たちは、その後、ansibleでLAMPサーバー環境をインストールした後、ansibleによってリモートホストにコンフィギュレーションファイルをコピーすることができます
- ステップ1:ソフトウェアのhttpdをインストールします。
[root@ansible ~]# yum -y install httpd -y
- パートII:インストールMySQLの
[root@ansible ~]# yum install mariadb-server mariadb -y
#mysqlのサービスをインストールします。
[root@ansible ~]# mkdir -p /mysqldata/data/
#格納された位置データなどのディレクトリを作成します。
[root@ansible ~]# chown -R mysql:mysql /mysqldata/
#認証
[root@ansible ~]# vim /etc/my.cnf
#データ格納ディレクトリの変更を変更します。
2 datadir=/var/lib/mysql
読みます:2 datadir=/mydata/data/
[root@ansible data]# systemctl start mariadb
- ステップ3:モジュールPHPとPHP-MySQLをインストールします。
[root@ansible ~]# yum -y install php php-mysql
ステップ4:PHPのテストページを提供
[root@ansible ~]# vim /var/www/html/index.php
[root@ansible ~]# cat /var/www/html/index.php
<?php
phpinfo();
?>
[root@ansible ~]# systemctl reload httpd
#サービスのhttpd開始
HTTPDテストします。http://192.168.43.121
テストページの上に登場していることを確認し、MySQLは、我々は次のステップに来統合されていることを確認するために
第五に、定義されたグループ名
[ルート@ ansible〜]#のvimの/ etc / ansible /ホスト#以前どこ変更することなく、更なる使用を定義し
[webservers]
192.168.43.121
192.168.43.167
192.168.43.168
次に、コピー制御ノードに対して公開鍵情報は、SSHを介して接続され、2つのノード間ansible。我々はすでに実行されず、次の3つのコマンドを行ってきました。
[ルート@ ansible〜]#1にssh-keygenは
[ルート@ ansible〜]#sshをコピー-IDの[email protected]
[ルート@ ansible〜]#sshをコピー-IDの[email protected]
6:LAMPを構築するタスクを作成するために脚本を使用しました
1、文書を作成します
[root@ansible ~]# mkdir -pv /etc/ansible/lamp/roles/{prepare,httpd,mysql,php}/{tasks,files,templates,vars,meta,default,handlers}
我々は成功したLAMP環境のhttpdの上に構築し、MySQLの設定ファイルは、対応するディレクトリにコピーされます
[root@ansible ~]# cd /etc/ansible/ [root@ansible ansible]# cp /etc/httpd/conf/httpd.conf lamp/roles/httpd/files/
[root@ansible ansible]# cp /etc/my.cnf lamp/roles/mysql/files/
[ルート@ ansible ansible]#書き込み準備(準備)ロールプレイブック
[root@ansible ansible]# vim lamp/roles/prepare/tasks/main.yml
[root@ansible ansible]# cat lamp/roles/prepare/tasks/main.yml
- name: delete yum config
shell: rm -rf /etc/yum.repos.d/* #删除原有的yum配置文件
- name: provide yumrepo file
shell: wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #下载新的yum配置文件
- name: clean the yum repo
shell: yum clean all #清除原有的yum缓存信息
- name: clean the iptables
shell: iptables -F #清除原有防火墙规则,不然后可能上不了网
[root@ansible ansible]#
2、HTTPDを構築する作業
[root@ansible ansible]# cd /etc/ansible/lamp/roles/
[root@ansible roles]# mv /var/www/html/index.php httpd/files/
[root@ansible roles]# vim httpd/tasks/main.yml
[root@ansible roles]# cat httpd/tasks/main.yml
[root@ansible roles]# cat httpd/tasks/main.yml
- name: web server install
yum: name=httpd state=present #安装httpd服务
- name: provide test page
copy: src=index.php dest=/var/www/html #提供测试页
- name: delete apache config
shell: rm -rf /etc/httpd/conf/httpd.conf #删除原有的apache配置文件,如果不删除,下面的copy任务是不会执行的,因为当源文件httpd.conf和目标文件一样时,copy命令是不执行的。如果copy命令不执行,那么notify将不调用handler。
- name: provide configuration file
copy: src=httpd.conf dest=/etc/httpd/conf/httpd.conf #提供httpd的配置文件
notify: restart httpd #当前面的copy复制成功后,通过notify通知名字为restart httpd的handlers运行
3、ハンドラの建設のhttpd
[root@ansible roles]# vim httpd/handlers/main.yml
[root@ansible roles]# cat httpd/handlers/main.yml
- name: restart httpd
service: name=httpd enabled=yes state=restarted
[root@ansible roles]#
4、当社MariaDBデータベースの展開は、
MySQLサービスを作成するタスクは、MySQLサービスをインストールする必要があり、所有者情報を変更するには、MySQLを開始します
[root@ansible roles]# cd /etc/ansible/lamp/roles/
[root@ansible roles]# vim mysql/tasks/main.yml
[root@ansible roles]# cat mysql/tasks/main.yml
- name: install the mysql
yum: name=mariadb-server state=present #安装mysql服务
- name: mkdir date directory
shell: mkdir -p /mydata/data #创建挂载点目录
- name: provide configration file
copy: src=my.cnf dest=/etc/my.cnf #提供mysql的配置文件
- name: chage the owner
shell: chown -R mysql:mysql /mydata/ #更改属主和属组
- name: start mariadb
service: name=mariadb enabled=yes state=started #启动mysql服务
5、PHPを構築する作業
[root@xuegod63 roles]# vim php/tasks/main.yml
- name: install php
yum: name=php state=present #安装php
- name: install php-mysql
yum: name=php-mysql state=present #安装php与mysql交互的插件
図6に示すように、全体の使命を定義
[root@ansible roles]# cd /etc/ansible/lamp/roles/
[root@ansible roles]# vim site.yml
[root@ansible roles]# cat site.yml
- name: LAMP build
remote_user: root
hosts: web-servers
roles:
- prepare
- mysql
- php
- httpd
[root@ansible roles]#
注:すべてのYML設定ファイル、スペースは厳密である必要があります
展開し始めました。
[root@ansible roles]# ansible-playbook -i /etc/ansible/hosts /etc/ansible/lamp/roles/site.yml
次に、これらの二つのブラウザでホストアクセス、成功への直接アクセスノード。
概要:この演習を行う、あなたはクリーンな環境を必要とする、SELinuxは、ファイアウォールをシャットダウンする必要があります