ansible案列之LNMP分布式劇本

LNMP分布式劇本

  • 一:環境設置
  • 二:編寫Nginx劇本
    • 準備nginx下載源
    • 準備配置文件并開放PHP的訪問路徑
    • 準備php測試頁面
    • 編寫nginx劇本
  • 三:編寫Mysql劇本
    • 編寫密碼獲取腳本
    • 準備Mysql的yum源
    • 編寫mysql劇本
  • 四:準備PHP劇本
    • 準備兩個配置文件
    • 編寫php劇本

一:環境設置

主機部署應用
192.168.52.100ansible
192.168.52.110nginx
192.168.52.120mysql
192.168.52.130php

二:編寫Nginx劇本

準備nginx下載源

mkdir -p /etc/ansible/playbook/nginx
cd /etc/ansible/playbook/nginx
vim nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

準備配置文件并開放PHP的訪問路徑

vim default.conf 
...
location / {root   /usr/share/nginx/html;index  index.html index.htm index.php;# 添加Nginx.php匹配項}
....
location ~ \.php$ {root           html;fastcgi_pass   192.168.52.130:9000;  #執行php的服務器和端口fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;include        fastcgi_params;

準備php測試頁面

vim /etc/ansible/playbook/nginx/index.php
<?php
phpinfo();
?>

編寫nginx劇本

vim /etc/ansible/playbook/nginx/nginx.yml 
- name: LAMP nginxhosts: webserversremote_user: roottasks:- name: stop firewalld #關閉防火墻service: name=firewalld state=stopped enabled=no- name: stop selinux #關閉selinuxcommand: '/usr/sbin/setenforce 0'ignore_errors: true- name: nginx.repo #準備Nginx的yum源copy: src=/etc/ansible/playbook/nginx/nginx.repo dest=/etc/yum.repos.d/nginx.repo- name: install nginx #下載nginxyum: name=nginx- name: start nginx #啟動Nginxservice: name=nginx state=started enabled=yes- name: copy nginx.conf #修改配置文件copy: src=/etc/nginx/conf.d/default.conf dest=/etc/nginx/conf.d/default.confnotify: "restart nginx" #指定觸發器- name: index.php #準備網頁測試王建copy: src=/etc/ansible/playbook/nginx/index.php dest=/usr/share/nginx/htmlhandlers:- name: restart nginx #觸發器任務,重啟Nginxservice: name=nginx state=restarted
ansible-playbook nginx.yml  

三:編寫Mysql劇本

編寫密碼獲取腳本

mkdir -p /etc/ansible/playbook/mysql
vim /etc/ansible/playbook/mysql/passwd.sh#!/bin/bash
#獲取Mysql的密碼
passd=$(grep "password" /var/log/mysqld.log | awk '{print $NF}' | head -1)
#更改密碼
mysql -uroot -p"$passd" --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin@123';"
#授權
mysql -uroot -pAdmin@123 -e "grant all privileges on *.* to root@'%' identified by 'Admin@123' with grant option;

準備Mysql的yum源

sed -i 's/gpgcheck=1/gpgcheck=0/' /etc/yum.repos.d/mysql-community.repo

編寫mysql劇本

vim /etc/ansible/playbook/mysql/mysql.yml
- name: LAMP mysqlhosts: mysqlremote_user: roottasks:- name: stop firewalldservice: name=firewalld state=stopped enabled=no- name: stop selinuxcommand: '/usr/sbin/setenforce 0'ignore_errors: true- name: install mysql.repo #轉變mysql瞎子啊源shell: wget https://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm && rpm -ivh mysql57-community-release-el7-11.noarch.rpmignore_errors: true- name: mysql.repo #修改yum源,把倉庫打開copy: src=/etc/yum.repos.d/mysql-community.repo dest=/etc/yum.repos.d/mysql-community.repo- name: install mysql #下載mysqlyum: name=mysql-server- name: start msql #啟動mysqlservice: name=mysqld state=started enabled=yes- name: grep passwd #指定修改密碼腳本,修改密碼并授權script: /etc/ansible/playbook/mysql/passwd.sh
ansible-playbook mysql.yml  

四:準備PHP劇本

準備兩個配置文件

php.ini

#添加修改時時區
date.timezone = Asia/Shanghai

www.conf文件

user = php
group = php
listen = 192.168.52.130:9000
listen.allowed_clients = 192.168.52.110

編寫php劇本

vim //etc/ansible/playbook/php.yml
- name: LAMP nginxhosts: dbserversremote_user: roottasks:- name: stop firewalldservice: name=firewalld state=stopped enabled=no- name: stop selinuxcommand: '/usr/sbin/setenforce 0'ignore_errors: true- name: install php1 #準備php下載源shell: rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm && rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpmignore_errors: true- name: install php2 #下載PHP及依賴包shell: yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-pdo php72w-xml php72w-fpm php72w-mysqlnd php72w-opcacheignore_errors: true- name: start php #開啟phpservice: name=php-fpm state=started enabled=yes- name: user php #創建運行用戶user: name=php create_home=no shell=/sbin/nologin- name: php.ini #修改配置文件copy: src=/etc/ansible/playbook/php.ini dest=/etc/php.ini- name: www.confcopy: src=/etc/ansible/playbook/www.conf dest=/etc/php-fpm.d/www.conf- name: create nginxfile: name=/usr/share/nginx state=directory- name: create nginxfile: name=/usr/share/nginx/html state=directory- name: index.php #準備測試頁面copy: src=/etc/ansible/playbook/nginx/index.php dest=/usr/share/nginx/html
ansible-playbook php.yml  

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/41417.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/41417.shtml
英文地址,請注明出處:http://en.pswp.cn/news/41417.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深入理解linux內核--塊設備驅動程序

塊設備的處理 塊設備驅動程序上的每個操作都涉及很多內核組件&#xff1b;其中最重要的一些如圖14-1所示。 例如&#xff0c;我們假設一個進程在某個磁盤文件上發出一個read()系統調用 ——我們將會看到處理write請求本質上采用同樣的方式。 下面是內核對進程請求給予回應的一…

煤礦調度IP語音對講廣播模塊一鍵求助對講礦用調度通信系統SIP語音對講求助終端

硬件接口描述 SV-2101VP/ SV-2103VP系列網絡音頻模塊&#xff0c;所有外部連接采用端子&#xff0c;電源采用2.0mm的端子&#xff0c;網絡采用標準RJ45連接器&#xff0c;其他都是1.25mm的連接器。 端口類型定義 P ———— 電源 AI ———— 模擬輸入&#xff08;在這里是音…

微信小程序前后端開發快速入門(完結篇)

這篇是微信小程序前后端快速入門完結篇了&#xff0c;今天利用之前學習過的所有知識做一個新的項目「群登記助手v1.0」小程序。 整體技術架構&#xff1a;小程序原生前端小程序云開發。 經歷了前面教程的學習&#xff0c;大家有了一定的基礎&#xff0c;所以本次分享重心主要是…

Ubuntu服務器service版本初始化

下載 下載路徑 官網&#xff1a;https://cn.ubuntu.com/ 下載路徑&#xff1a;https://cn.ubuntu.com/download 服務器&#xff1a;https://cn.ubuntu.com/download/server/step1 點擊下載&#xff08;22.04.3&#xff09;&#xff1a;https://cn.ubuntu.com/download/server…

【Python百日進階-Web開發-Peewee】Day271 - Peewee API文檔 - 字段(二)

文章目錄 11.3.17 class UUIDField11.3.18 class BinaryUUIDField11.3.19 class DateTimeField11.3.20 class DateField11.3.21 class TimeField11.3.22 class TimestampField11.3.23 class IPField11.3.24 class BooleanField11.3.25 class BareField11.3.26 class ForeignKey…

神經網絡基礎-神經網絡補充概念-06-計算圖

概念 “計算圖”&#xff08;Computational Graph&#xff09;是一種用于表示數學表達式計算過程的圖結構&#xff0c;廣泛用于深度學習和自動微分等領域。計算圖將復雜的數學表達式分解為一系列簡單的計算節點&#xff0c;這些節點之間通過邊連接&#xff0c;形成了一個有向無…

【jwt】JWT原理,JWT是用來解決什么問題的,如何自定義生成JWT數據,并且實現jwt數據的解碼

JWT&#xff1a; JSON Web Token 1. jwt概述 用戶登錄成功后&#xff0c;服務端 如何知道客戶端的每次請求對應的是哪個用戶呢&#xff1f;怎么做&#xff1a;目前有兩種方式實現. 1.1. 一是通過sessionId的方式&#xff0c;登錄成功后服務端返回sessionId給客戶端&#xff0…

【2023年11月第四版教材】《第5章-信息系統工程之數據工程(第三部分)》

《第5章-信息系統工程之數據工程&#xff08;第三部分&#xff09;》 2 數據工程2.1 數據建模2.2 數據標準化2.3 數據運維2.4 數據開發利用2.5 數據庫安全 2 數據工程 2.1 數據建模 1、根據模型應用目的不同&#xff0c;可以將數據模型劃分為三類:概念模型、邏輯模型和物理模…

【數據結構】棧與隊列

1 棧 1.1 棧的概念及結構 棧&#xff1a;一種特殊的線性表&#xff0c;其只允許在固定的一端進行插入和刪除元素操作。進行數據插入和刪除操作的一端稱為棧頂&#xff0c;另一端稱為棧底。棧中的數據元素遵守后進先出 LIFO (Last In First Out) 的原則。 壓棧&#xff1a;棧…

力扣75——圖廣度優先搜索

總結leetcode75中的圖廣度優先搜索算法題解題思路。 上一篇&#xff1a;力扣75——圖深度優先搜索 力扣75——圖廣度優先搜索 1 迷宮中離入口最近的出口2 腐爛的橘子1-2 解題總結 1 迷宮中離入口最近的出口 題目&#xff1a; 給你一個 m x n 的迷宮矩陣 maze &#xff08;下標…

Kafka中的 ISR 機制

ISR 是什么 ISR 的全稱叫做&#xff1a; In-Sync Replicas &#xff08;同步副本集&#xff09;, 可以理解為和 leader 保持同步的所有副本的集合。ISR 動態維護了一個和 leader 副本保持同步副本集合&#xff0c;ISR 中的副本全部都和 leader 的數據保持同步。 設一個場景&a…

JupyterHub實戰應用

一、JupyerHub jupyter notebook 是一個非常有用的工具&#xff0c;我們可以在瀏覽器中任意編輯調試我們的python代碼&#xff0c;并且支持markdown 語法&#xff0c;可以說是科研利器。但是這種情況適合個人使用&#xff0c;也就是jupyter notebook以我們自己的主機作為服務器…

PostgreSQL邏輯備份pg_dump使用及其原理解析

一、原理分析 1、循環調用getopt_long解析命令行參數&#xff0c;將參數保存到static DumpOptions dopt;中 2、判斷參數是否相容&#xff0c;不相容則退出&#xff1a; options -s/--schema-only and -a/--data-only cannot be used togetheroptions -c/--clean and -a/--data…

uni-app中監聽網絡狀態,并在嵌入webView頁面的組件中添加網絡監測

uni-app中監聽網絡狀態&#xff0c;并在嵌入webView頁面的組件中添加網絡監測 uni-app中監聽網絡狀態 下載插件 打開網絡異常組件頁面&#xff0c;點擊"下載插件并導入HBuilderX"按鈕&#xff0c;打開HBuilderX軟件后&#xff0c;選擇需要導入插件的項目&#xff…

機器學習與模型識別1:SVM(支持向量機)

一、簡介 SVM是一種二類分類模型&#xff0c;在特征空間中尋找間隔最大的分離超平面&#xff0c;使得數據得到高效的二分類。 二、SVM損失函數 SVM 的三種損失函數衡量模型的性能。 1. 0-1 損失&#xff1a; 當正例樣本落在 y0 下方則損失為 0&#xff0c;否則損失為…

系統架構設計師-信息安全技術(1)

目錄 一、信息安全基礎 1、信息安全五要素 2、網絡安全漏洞 3、網絡安全威脅 4、安全措施的目標 二、信息加解密技術 1、對稱加密 2、非對稱加密 3、加密算法對比 三、密鑰管理技術 1、數字證書 2、PKI公鑰體系 四、訪問控制技術 1、訪問控制基本模型 2、訪問控制的實現技術…

【Linux命令詳解 | ssh命令】 ssh命令用于遠程登錄到其他計算機,實現安全的遠程管理

文章標題 簡介一&#xff0c;參數列表二&#xff0c;使用介紹1. 連接遠程服務器2. 使用SSH密鑰登錄2.1 生成密鑰對2.2 將公鑰復制到遠程服務器 3. 端口轉發3.1 本地端口轉發3.2 遠程端口轉發 4. X11轉發5. 文件傳輸與遠程命令執行5.1 文件傳輸5.1.1 從本地向遠程傳輸文件5.1.2 …

TensorFlow 的基本概念和使用場景

簡介 TensorFlow 是一個開源的人工智能框架&#xff0c;由 Google 公司開發&#xff0c;用于構建和訓練機器學習模型。 TensorFlow 的基本概念包括&#xff1a; 1. 張量 (Tensor): TensorFlow 中的基本數據結構&#xff0c;可以理解為多維數組。 2. 計算圖 (Graph): TensorF…

深度學習入門-3-計算機視覺-圖像分類

1.概述 圖像分類是根據圖像的語義信息對不同類別圖像進行區分&#xff0c;是計算機視覺的核心&#xff0c;是物體檢測、圖像分割、物體跟蹤、行為分析、人臉識別等其他高層次視覺任務的基礎。圖像分類在許多領域都有著廣泛的應用&#xff0c;如&#xff1a;安防領域的人臉識別…

軟考筆記——9.軟件工程

軟件工程的基本原理&#xff1a;用分階段的生命周期計劃嚴格管理、堅持進行階段評審、實現嚴格的產品控制、采用現代程序設計技術、結果應能清除的審查、開發小組的人員應少而精、承認不斷改進軟件工程事件的必要性。 軟件工程的基本要素&#xff1a;方法、工具、過程 軟件生…