推薦-使用Ansible部署LAMP環境

使用Ansible部署LAMP環境

前言

這兩天學習了Ansible, 在部署實驗環境真的很好用, 今天向大家分享如何使用Ansible部署LAMP環境, 本文不對Ansible的基本使用作解釋, 有興趣的可以查看 馬哥教育翻譯: Ansible中文權威指南

實驗環境

今天實驗環境比較簡單, 所以就不畫圖了

主機 IP地址 功用
server1.anyisalin.com 172.16.1.2 控制主機
web.anyisalin.com 172.16.1.3 httpd和php
data.anyisalin.com 172.16.1.4 MySQL

實驗步驟

配置ssh公鑰認證

ansible是agentless類的工具, 通過ssh管理遠程主機, 我們需要配置基于公鑰認證的ssh

[root@ansible ~]# ssh-keygen -P '' -f ~/.ssh/id_rsa -t rsa    #生成公鑰
[root@ansible ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub 172.16.1.3
[root@ansible ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub 172.16.1.4

安裝ansible

由于ansible的rpm包只有在epel源主提供, 但是一些所依賴組件卻在官方的base2中, 所以我們使用阿里云的鏡像站

[root@ansible ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
[root@ansible ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
[root@ansible ~]# yum install ansible --nogpgcheck -y &> /dev/null && echo success  #安裝ansible 
success

配置host iventory

將我們所要管理的主機添加到配置文件中

[root@ansible ~]# vim /etc/ansible/hosts   #按需添加以下字段到指定配置文件中
    [webservers]  #組名
    172.16.1.3  #IP

    [dataserver]
    172.16.1.4

創建YAML文件

我們通過playbook來指揮主機運行特定操作 
注意: 筆者的配置只針對筆者的環境, 如需使用請自行修改

[root@ansible ~]# vim lamp.yml #創建YAML格式的文件
- 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=restart

- hosts: dataserver
  remote_user: root
  tasks:
  - name: Install MySQL Server
    yum: name=mysql-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=mysqld state=started
  handlers:
  - name: restart MySQL
    service: name=mysqld state=restarted

運行Ansible-Playbook并測試

Alt textblob.png

blob.png

blob.png

blob.png

blob.png

blob.png

Alt text

Alt text

Alt text

Alt text

Alt text

總結

其實還可以使用role實現, 但是我們這里不做介紹, Ansible上手真的簡單, ansible-doc命令查看的幫助也淺顯易懂, 寫這篇博客前mysql_user模塊我是不會使用的, 寫到最后的時候隨便試一下就成功了, 看來ansible的入門真的很容易。

作者水平很低, 如果有錯誤及時指出, 如果你覺得本文寫的好請點一波贊~(≧▽≦)/~
作者: AnyISaIln QQ: 1449472454
感謝: MageEdu

原創文章,作者:Net18-AnyISalIn,如若轉載,請注明出處:http://www.www58058.com/14529

(1)
Net18-AnyISalInNet18-AnyISalIn
上一篇 2016-04-09
下一篇 2016-04-10

相關推薦

  • 什么是網站流量、UV、PV、IP

    什么是網站流量,什么叫網站流量?     通常說的網站流量(traffic)是指網站的訪問量,是用來描述訪問一個網站的用戶數量以及用戶所瀏覽的網頁數量等指標,常用的統計指標包括網站的獨立用戶數量、總用戶數量(含重復訪問者)、網頁瀏覽數量、每個用戶的頁面瀏覽數量、用戶在網站的平均停留時間等。     …

    Linux干貨 2015-03-20
  • 第十四周作業

    系統的INPUT和OUTPUT默認策略為DROP; [root@CentOS7 ~]# iptables -P INPUT DROP [root@CentOS7 ~]# iptables -P OUTPUT DROP 1、限制本地主機的web服務器在周一不允許訪問;新請求的速率不能超過100個每秒;web服務器包含了admin字符串的頁面不允許訪問;web服…

    Linux干貨 2017-08-13
  • linux文件系統創建

    件系統管理 格式化:低級格式化(分區之前,劃分磁道)         高級格式化:在分區之后進行,創建文件系統         元數據(也是放在塊上(block)):inode  &nbsp…

    Linux干貨 2016-08-29
  • Linux 任務計劃、周期性任務執行

    Linux 任務計劃、周期性任務執行 概述:      什么是任務計劃呢?就像我們每個人日常生活中都會使用到的鬧鐘一樣,按時的去提醒該去做什么事情,以免忘記。同樣,我們在工作當中也要在每天在特定的時間內安排做一些事情,這就是任務計劃,本章將學習如何制定Linux系統的任務計劃,這里主要包括兩種工具:at和crontab…

    Linux干貨 2016-09-11
  • Nginx及Nginx模塊——更加輕量級的HTTP server

    Nginx engine X = Nginx      NGINX is a free, open-source, high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server. NGINX is known f…

    Linux干貨 2016-10-25
  • keepalived+haproxy實現wordpress的動靜分離及負載均衡、高可用

    實驗目的:使用keepalived+haproxy實現wordpress的動靜分離及負載均衡、高可用 實驗要求:客戶端請求的動態資源代理至動態資源web組,請求的靜態代理至靜態資源web組,啟用統計面信息并只對特定啟用統計面管理功能,啟用https安全連接 系統環境:CentOS 7.3、關閉selinux和清除iptables規則,A和B主機各需要兩塊網卡…

    2017-05-18

評論列表(2條)

  • n18-jude
    n18-jude 2016-04-15 08:56

    文章很不錯,排版太漂亮了

欧美性久久久久