1. 程式人生 > >Ansible工具實現LAMP叢集環境自動化搭建

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.