脚本展開ランプアーキテクチャでansibleを使用する方法

実 - 複数の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は、ファイアウォールをシャットダウンする必要があります

公開された60元の記事 ウォンの賞賛3 ビュー2057

おすすめ

転載: blog.csdn.net/weixin_42313749/article/details/104584619