どのようにansibleの中のplaybookを使ってlampアーキテクチャを配置しますか?

6126 ワード

記事の目次
  • 実戦-複数台のLAMP環境をPlaybookで一括配置する
  • Playbook sにタスクを定義する:
  • 複数台のLAMP環境Playbook常用フォルダの役割を展開します.
  • Playbookを用いて複数台のLAMP環境ステップ
  • を一括配置する.
    実戦-Playbookを使ってLAMP環境を大量に展開
  • playbook sは、ansibleコマンドラインの実行方式とは異なるモードであり、機能がより強く、より柔軟である.
  • 考え方:lapアーキテクチャを構築するには、大体必要です.
  • yumインストールサービス
  • service起動
  • copyはウェブサイトをコピーして
  • に行きます.
    playbook sでタスクを定義します.
  • name:task description菗タスク記述情報module_name:module_args((zhi)が使用するモジュール名:ansible-playbook実行命令形式:
  • [root@ansible ~]# ansible-playbook site.yml
  • の例では、playbookは、1つまたは複数の「プレイ」からなるリストである.プレイの主な機能は、あらかじめセットになっているホストをアンブルの中のtaskで定義されたキャラクターに扮装することです.githubは大量の実例を提供しています.参考にしてください.https://github.com/ansible/ansible-examples 4.2複数台のLAMP環境Playbookを展開する通常のフォルダの役割:
  • files:保管は異郷サーバのソースファイルと配置ファイルに同期する必要があります.
  • handlers:サービスの設定ファイルが変更されたときに行う操作、例えばサービスを再開し、設定ファイルを再読み込みし、ハンドルズ-処理プログラムmeta:役割定義、空きを残すことができます.
  • tasks:必要な実行タスク;templates:lampインストールを実行するためのテンプレートファイルは、一般にスクリプトである.
  • vars:今回のインストールで定義された変数4.3
  • 複数台のLAMP環境ステップをPlaybookで一括配備
    私たちはansibleサーバにLAMP環境をインストールしてから、設定ファイルをansibleでリモートホストにコピーします.
  • 第一歩:httpdソフトウェアのインストール
  • [root@ansible ~]# yum -y install httpd -y
  • 第二部: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/mysql2 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
    
    
    [root@ansible ~]# systemctl reload httpd菷起動httpdサービス
    httpdテスト:http://192.168.43.121
    上のテストページがあることを確認してください.そして、MySQLが統合されていることを確認してから、次の操作ができます.
    5番目グループ名を定義
    [root@ansible~」(萼vim/etc/ansible/hosts葑は使用前に定義されたものですので、ここでは修正しないでください.
    [webservers]
    192.168.43.121
    192.168.43.167
    192.168.43.168
    
    その後、公開鍵情報を制御ノードにコピーし、ansibleと2つのノード間をsshで接続する.次の3つの命令は前にすでにしました.実行しなくてもいいです.
    [root@ansible~]菜ssh-keygen[root@ansible~」(瑭ssh-copy-i [email protected][root@ansible~」(瑭ssh-copy-i [email protected]
    第六:playbookを使って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/[root@ansibleansible"((zhiはprepare(前期準備)のキャラクターのplaybook sを書きます.[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を構築するhandlers
    [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、私達のMariiaDBデータベースを展開して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]#
    
    注:すべてのmymlのプロファイルでは、スペースは厳密に合わせてください.
    展開を開始:[root@ansible roles]# ansible-playbook -i /etc/ansible/hosts /etc/ansible/lamp/roles/site.ymlその後、ブラウザでこの2つのノードホストにアクセスし、直接アクセスすることができます.
    総括:この実験室を作るには、綺麗な環境を準備しなければなりません.selinux、ファイアウォールは全部閉鎖します.