Ansible工具實現LAMP叢集環境自動化搭建
Ansible主要是通過SSH協議進行機器的管理
安裝完成之後,不需要啟動或者執行一個後臺程序,或者新增一個數據可,只要在一臺電腦上安裝好,就可以通過一臺機器管理一組遠端機器,而在遠端機器上不需要安裝任何軟體
一、ansible的安裝
1)yum安裝
yum install -y ansible
2)pip安裝
pip是一個安裝和管理python軟體包的工具
pip install -y ansible
3)原始碼安裝
git clone git://github.com/ansible/ansible.git --recursive cd ./ansible source ./hacking/env-setup
二、三臺主機之間實現免密碼登入 ——【一主二輔】
管理主機:192.168.3.6
控制主機:192.168.3.69 192.168.3.70
生成公鑰和私鑰:ssh-keygen -P ''
將/root/.ssh下的id_rsa.pub檔案拷貝到另外的主機
注:ssh-copy-id命令會自動將id_rsa.pub檔案的內容追加到遠端主機root使用者下.ssh/authorized_keys檔案中。
ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.3.69
三、ansible配置檔案
hosts檔案是用來指定被ansible管理的檔案
roles是用來指定每一個角色
ansible.cfg核心配置檔案
配置檔案目錄:/etc/ansible
[[email protected] ansible]# ll
total 24
-rw-r--r-- 1 root root 19336 Apr 18 03:46 ansible.cfg
-rw-r--r-- 1 root root 1048 Apr 18 03:53 hosts
drwxr-xr-x 2 root root 6 Mar 27 17:30 roles
1)編輯ansible.cfg檔案:
#禁用每次執行ansible命令檢查ssh key host host_key_checking = False #開啟日誌記錄 log_path = /var/log/ansible.log #ansible連線加速裝置 accelerate_port = 10000 accelerate_multi_key = yes
2)編輯hosts檔案
#新增控制主機並分組
[webservers]
192.168.3.69
[dataserver]
192.168.3.70
3)模組介紹
【command模組】
在管理主機上執行shell命令的模組:-a 執行命令
ansible web -a "ifconfig"
【shell模組】
shell模組支援使用管道,而command不支援使用
ansible app -m shell -a "echo '123'| passwd --stdin jk"
特別的:-m 指明所使用的模組 -a 執行相應的命令
【copy模組】
將ansible上的檔案複製到指定控制主機上
ansible all -m copy -a "src=/etc/hosts dest=/tmp/hosts"
當然在複製過程中也可以指定 owner=,group= ,mode= , 例如:
ansible all -m copy -a "src=/etc/fstab dest=/tmp owner=yhy group=yhy mode=644"
同樣的也可以將內容複製過去。例如
ansible all -m copy -a "content='hello i will come back ' dest=/tmp/hello owner=yhy group=yhy mode=644"
特別的:all 表示所有控制主機
【yum模組】
基於yum管理程式包
#安裝httpd程式包,latest表示安裝的包是最新的
ansible app -m yum -a "name=httpd state=latest"
#解除安裝httpd程式包
ansible app -m yum -a "name=http* state=absent"
【service模組】
管理被監控的主機
#讓服務啟動與關閉
ansible app -m service -a "name=httpd state=started"
ansible app -m service -a "name=httpd state=stoped"
4)YAML檔案
四、使用ansible部署LAMP環境
前提:管理主機上已經配置好關於HTTP、PHP、MySQL主配置檔案的相關配置引數
1)建立YAML檔案 —— lamp.yml(劇本)
- hosts: webservers
remote_user: root
tasks:
- name: Install Apache Httpd
yum: name={{ item }} state=present disable_gpg_check=yes
with_items:
- httpd
- php
- php-mysql
- name: Install Configuration File
template: src=/root/httpd.conf dest=/etc/httpd/conf/httpd.conf
notify:
- restart httpd
- name: Start Httpd Service
service: enabled=true name=httpd state=started
handlers:
- name: restart httpd
service: name=httpd state=restarted
- hosts: dataserver
remote_user: root
tasks:
- name: Install MySQL Server
yum: name=mariadb-server state=present disable_gpg_check=yes
- name: Install Configuration File
template: src=/etc/my.cnf dest=/etc/my.cnf
notify:
- restart MySQL
- name: Start MySQL Server
service: name=mariadb state=started
handlers:
- name: restart MySQL
service: name=mariadb state=restarted
2)執行
ansible-playbook lamp.yml
此時已經在控制主機上webserver上安裝好http和php,在dataserver上安裝好MySQL
3)在控制主機dataserver上安裝python連線MySQL的驅動
ansible dataserver -m yum -a "name=MySQL-python state=present disable_gpg_check=yes"
4)在控制主機dataserver上建立MySQL的使用者
ansible dataserver -m mysql_user -a "name=test password=12345 host=% state=present"
特別的:因為PHP和MySQL分別安裝在不同的主機上面,所以要保證資料庫在連線的過程中外網能夠進行訪問,所以在建立使用者的過程中必須給使用者授權來保證外網能夠連線
5)測試PHP連線MySQL成功
在本地建立index.php頁面
PHP連線MySQL的測試程式碼
<?php
$link = mysql_connect('192.168.3.70', 'test', '12345');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
phpinfo()
?>
ansible webserver -m copy -a "src=/root/index.php dest=/var/www/html/index.php"
在瀏覽器上進行訪問,看是否連線成功
#PHP實現圖片迴圈
<?php
header('Content-Type: image/jpeg');
$data = file_get_contents('/images/1.jpg');
echo $data;
?>
參考文件:
相關推薦
Ansible工具實現LAMP叢集環境自動化搭建
Ansible主要是通過SSH協議進行機器的管理 安裝完成之後,不需要啟動或者執行一個後臺程序,或者新增一個數據可,只要在一臺電腦上安裝好,就可以通過一臺機器管理一組遠端機器,而在遠端機器上不需要安裝任何軟體 一、ansible的安裝 1)yum安裝 yum in
Ubuntu下MPI叢集環境的搭建
Ubuntu下MPI叢集環境的搭建 我們要並行地跑MPI程式,需要將幾臺計算機連在一塊,搭建成一個叢集,使得相互之間的訊息傳遞沒有阻礙,下面以Ubuntu系統為例,談MPI叢集環境的搭建過程。 Ubuntu和MPICH的安裝 Ubuntu的安裝可以說是傻瓜式的,可以在wind
redis - Linux下叢集環境的搭建
一、安裝redis(使用redis3.0版本) 1、需要gcc環境,如果沒有執行命令安裝gcc yum install gcc-c++ 2、下載redis3.0的原始碼包並上傳至伺服器 3、解壓原始碼包 tar -zxvf redis-3.0.0.tar.gz 4.進入解壓目
利用Visual Studio 2017的擴充套件開發(VSIX、ItemTemplate) 快速實現專案的半自動化搭建
目錄 0.引言 1.什麼是Visual Studio專案模板 2.IWizad介面 3.通過Visual Studio擴充套件開發實現領域驅動開發 3.1 使用VSIX+ProjectTemplate建立專案模板 3.2使用ItempTemplate建立自定義項模板
Linux系統下kafka叢集環境的搭建
1:搭建kafka叢集環境需要安裝JDK、Zookeeper叢集環境 JDK的安裝可以參考https://mp.csdn.net/postedit/84196901這篇部落格 Zookeeper叢集環境的安裝可以參考https://mp.csdn.net/postedit/84201320這
Linux系統下Zookeeper叢集環境的搭建
1:下載Zookeeper 下載地址:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/ 2:配置和安裝Zookeeper #我的目錄統一放在/opt下面 #首先建立Zookeeper專案目錄 mkd
RocketMQ實戰(一)之叢集環境的搭建
一:什麼是RocketMQ? RocketMQ作為一款分散式的訊息中介軟體(阿里的說法是不遵循任何規範的,所以不能完全用JMS的那一套東西來看它),經歷了Metaq1.x、Metaq2.x的發展和淘寶雙十一的洗禮,在功能和效能上遠超ActiveMQ。 二:為什麼要用RocketMQ? 分
Linux上Storm叢集環境的搭建
一:什麼是Storm? Storm是開源的一個分散式實時計算系統,用於資料的實時分析,持續計算,分散式RPC、線上機器學習、ETL等。例如,在電商購物網站購買商品時,會在網頁旁邊或者底端看到與自己所需要商品相關的系列商品,這就是使用類似Storm實時計算去做的。Hadoop適用於海量資料的離線資
Hive叢集環境的搭建
一、Hive簡介 Hive 是基於 Hadoop 的一個數據倉庫工具,可以將結構化的資料檔案對映為一張資料庫表,並提供完整的 SQL 查詢功能,將類 SQL 語句轉換為 MapReduce 任務執行。 二、環境準備 zookeeper-3.4.6,hadoop
從壹開始前後端分離 [.netCore 填坑 ] 三十二║ 四種方法快速實現專案的半自動化搭建
更新 1、更新小夥伴 @ 提出好點子:試試VS的外掛擴充套件:VSIX、ItemProject等,將T4模板給製作外掛,這裡先記下,有懂的小夥伴可以自己先試試,我會在以後更新。 2、感謝小夥伴 @的測試和指正,本文 T4 模板已經支援 Oracle 緣起 哈嘍大家週二好呀,這個國慶過的真
redis叢集環境的搭建和錯誤分析
解決方法: 1)、將需要新增的節點下aof、rdb等本地備份檔案刪除; 2)、同時將新Node的叢集配置檔案刪除,即:刪除你redis.conf裡面cluster-config-file所在的檔案; 3)、再次新增新節點如果還是報錯,則登入新Node,./redis-cli–h x –p對資料庫進行
Linux下Hadoop2.7.1叢集環境的搭建(超詳細版)
1 <?xml version="1.0"?> 2 <!-- 3 Licensed under the Apache License, Version 2.0 (the "License"); 4 you may not use this file except in c
Redis3.0叢集環境的搭建詳細步驟
叢集需要ruby環境 本實驗採用的是centos6.5系統。搭建叢集環境需要進行環境準備,需要安轉ruby指令碼。具體的操作如下: 安裝ruby yum install ruby yum install rubygems 指令碼需要ruby包:
Windows10系統下LAMP開發環境的搭建
去年剛開始學習PHP開發的時候,搭建LAMP環境採用了一個現成的軟體:phpstudy來完成,雖然勉強能用,但是後來總會發現有這樣或那樣的問題(一個重要的問題就是系統原裝的MySQL資料庫會被覆蓋掉)弄得挺亂的。今天正好有一點時間,自己從官網下載了各個軟體的
【zookeeper】zookeeper單機和叢集環境的搭建
首先去官網下載zookeeper安裝包,本文采用3.4.6stable版本 tar命令解壓後的目錄結構如下: [[email protected] zookeeper-3.4.6]# ll total 1612 drwxr-xr-x 2 1000 1000
UI自動化測試簡介及Selenium工具的介紹和環境搭建
版本 ebe 需求分析 核心 nis rep color 基於 多語 自動化測試簡介 1.1何為自動化測試? 是把以人為驅動的測試轉化為機器執行的一種過程,它是一種以程序測試程序的過程。換言之,就是以程序實現的方式來代替手工測試。 1.2自動化測試分類 分為功能自動
linux環境下搭建自動化Jenkins管理工具
一、搭建一個jak--tomcat伺服器到自己的linux伺服器上 具體的伺服器搭建這裡可以參考華華大佬的部落格:https://www.cnblogs.com/liulinghua90/p/4661424.html 二、 如果通過http:ip地址:埠在瀏覽器訪問出現下 說明
【雲星資料---Nik(精品版)】:通過ansible playbook實現自動化部署 KUBERNETES 叢集
環境要求 實驗環境通過MBP下的virtualbox和vagrant來提供3臺虛擬機器(centos 7)進行部署,其中1臺配置為k8s master其他2臺配置為k8s nodes。可以根據實際環境擴充套件k8s noded的數量。 假設虛擬機器I
Windows+Nginx+Tomcat搭建負載均衡和叢集環境同時實現session共享(一)
摘要:隨著網站的訪問量越來越多,所以就考慮給網站增加伺服器了,現在比較流行的做法就是給網站做叢集環境,下面我把我做的過程記錄一下,方便日後檢視,同時也希望可以幫助到有需要的朋友! 一:首先是環境: 1.jdk 1.6.0_45 2.tomcat 6.0.44 3.nginx
day72_淘淘商城專案_05_首頁輪播圖顯示實現 + redis的安裝及使用 + redis叢集環境搭建 + redis實現快取 + 快取同步_匠心筆記
淘淘商城專案_05 1、首頁輪播圖的展示 1.1、功能分析 1.2、Dao層 1.3、Service層 1.3.1、釋出服務 1.4、表現層 1.