どのように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実行命令形式: の例では、playbookは、1つまたは複数の「プレイ」からなるリストである.プレイの主な機能は、あらかじめセットになっているホストをアンブルの中のtaskで定義されたキャラクターに扮装することです.githubは大量の実例を提供しています.参考にしてください. 複数台のLAMP環境ステップをPlaybookで一括配備
私たちはansibleサーバにLAMP環境をインストールしてから、設定ファイルをansibleでリモートホストにコピーします.第一歩:httpdソフトウェアのインストール 第二部:MySQL をインストールする.第3ステップ:PHPとphp-mysqlモジュール をインストールします.
httpdテスト:http://192.168.43.121
上のテストページがあることを確認してください.そして、MySQLが統合されていることを確認してから、次の操作ができます.
5番目グループ名を定義
[root@ansible~」(萼vim/etc/ansible/hosts葑は使用前に定義されたものですので、ここでは修正しないでください.
[root@ansible~]菜ssh-keygen[root@ansible~」(瑭ssh-copy-i [email protected][root@ansible~」(瑭ssh-copy-i [email protected]
第六:playbookを使ってLAMP構築のタスクを作成する.
1、関連ファイルの作成
展開を開始:
総括:この実験室を作るには、綺麗な環境を準備しなければなりません.selinux、ファイアウォールは全部閉鎖します.
実戦-Playbookを使ってLAMP環境を大量に展開
playbook sでタスクを定義します.
[root@ansible ~]# ansible-playbook site.yml
https://github.com/ansible/ansible-examples 4.2
複数台のLAMP環境Playbookを展開する通常のフォルダの役割:files
:保管は異郷サーバのソースファイルと配置ファイルに同期する必要があります.handlers
:サービスの設定ファイルが変更されたときに行う操作、例えばサービスを再開し、設定ファイルを再読み込みし、ハンドルズ-処理プログラムmeta:役割定義、空きを残すことができます.tasks
:必要な実行タスク;templates
:lampインストールを実行するためのテンプレートファイルは、一般にスクリプトである.vars
:今回のインストールで定義された変数4.3 私たちはansibleサーバにLAMP環境をインストールしてから、設定ファイルをansibleでリモートホストにコピーします.
[root@ansible ~]# yum -y install httpd -y
[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
[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、ファイアウォールは全部閉鎖します.