久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      自動(dòng)化運(yùn)維之Ansible服務(wù)部署詳述

      一、概述分析

      由于互聯(lián)網(wǎng)的快速發(fā)展導(dǎo)致產(chǎn)品更新?lián)Q代速度逐漸加快,運(yùn)維人員每天都要進(jìn)行大量的維護(hù)操作,仍舊按照傳統(tǒng)方式進(jìn)行維護(hù)會(huì)使得工作效率低下。這時(shí),部署自動(dòng)化運(yùn)維就可以盡可能安全、高效地完成這些工作。
      一般會(huì)把自動(dòng)化運(yùn)維工具劃分為兩類:一類是需要使用代理工具的,也就是基于專用的ABem程序來完成管理功能,如: Puppet、Func、 Zabbix等;另外一類是不需要配置代理工具的,可以直接基于SSH服務(wù)來完成管理功能,如: Ansible、 Fabric等。

      下面介紹幾款功能類似的自動(dòng)化運(yùn)維工具:

      1. Puppet

      Pup基于Rpy開發(fā),支持Linx、UNDX、 Windows平臺(tái),可以針對(duì)用戶、系統(tǒng)服務(wù)配置文件、軟件包等進(jìn)行管理,有很強(qiáng)的擴(kuò)展性,但遠(yuǎn)程執(zhí)行命令相對(duì)較弱。

      2. SaltStack

      CallStack基于 Python開發(fā),允許管理員對(duì)多個(gè)操作系統(tǒng)創(chuàng)建統(tǒng)一的管理系統(tǒng),比pet更輕量級(jí)

      工具 開發(fā)語言 結(jié)構(gòu) 配置文件 格式 運(yùn)行任務(wù)
      Ansible Python YAML 支持命令行
      SaltStack Python C/S YAML 支持命令行
      Puppet Ruby C/S Ruby語法格式 通過模塊實(shí)現(xiàn)

      Ansible
      Ansible基于 Python開發(fā),集合了眾多優(yōu)秀運(yùn)維工具的優(yōu)點(diǎn),實(shí)現(xiàn)了批量運(yùn)行命令部署程序、配置系統(tǒng)等功能。默認(rèn)通過SSH協(xié)議進(jìn)行遠(yuǎn)程命令執(zhí)行或下發(fā)配置,無需部署任何客戶端代理軟件,從而使得自動(dòng)化環(huán)境部署變得更加簡(jiǎn)單??赏瑫r(shí)支持多臺(tái)主機(jī)并行管理,使得管理主機(jī)更加便捷。

          官方的title是“Ansible is Simple IT Automation”——簡(jiǎn)單的自動(dòng)化IT工具。

      Ansible通過SSH協(xié)議實(shí)現(xiàn)遠(yuǎn)程節(jié)點(diǎn)和管理節(jié)點(diǎn)之間的通信。理論上說,只要管理員通過ssh登錄到一臺(tái)遠(yuǎn)程主機(jī)上能做的操作,Ansible都可以做到。

      Ansible跟其他IT自動(dòng)化技術(shù)的區(qū)別在于其關(guān)注點(diǎn)并非配置管理、應(yīng)用部署或IT流程工作流,而是提供一個(gè)統(tǒng)一的界面來協(xié)調(diào)所有的IT自動(dòng)化功能,因此Ansible的系統(tǒng)更加易用,部署更快。
      Ansible可以讓用戶避免編寫腳本或代碼來管理應(yīng)用,同時(shí)還能搭建工作流實(shí)現(xiàn)IT任務(wù)的自動(dòng)化執(zhí)行。IT自動(dòng)化可以降低技術(shù)門檻及對(duì)傳統(tǒng)IT的依賴,從而加快項(xiàng)目的交付速度。

      自動(dòng)化運(yùn)維之Ansible服務(wù)部署詳述

      Ansible基本架構(gòu)由六個(gè)部分組成:

      Ansible core 核心引擎。
      Host inventory 主機(jī)清單:用來定義Ansible 所管理的主機(jī),默認(rèn)是在Ansible的host配置文件中定義被管理主機(jī),同時(shí)也支持自定義動(dòng)態(tài)主機(jī)清單和指定其他配置文件的位置。
      Connection plugins連接插件:負(fù)責(zé)和被管理主機(jī)實(shí)現(xiàn)通信。除支持使用ssh連接被管理主機(jī)外, Ansible還支持其他的連接方式,所以需要有連接插件將各個(gè)主機(jī)用連接插件連接到 Ansible。
      Playbooks(yaml, injaz2)劇本:用來集中定義 Ansible任務(wù)的配置文件,即將多個(gè)任務(wù)定義在一個(gè)劇本中由 Ansible自動(dòng)執(zhí)行,可以由控制主機(jī)針對(duì)多臺(tái)被管理主機(jī)同時(shí)運(yùn)行多個(gè)任務(wù)。
      Core modules核心模塊:是 Ansible自帶的模塊,使用這些模塊將資源分發(fā)到被管理主機(jī),使其執(zhí)行特定任務(wù)或匹配特定的狀態(tài)。
      Custom modules自定義模塊:用于完成模塊功能的補(bǔ)充,可借助相關(guān)插件完成記錄日志、發(fā)送郵件等功能。

      ansible功能特性

      • 應(yīng)用代碼自動(dòng)化部署
      • 系統(tǒng)管理配置自動(dòng)化
      • 支持持續(xù)交付自動(dòng)化
      • 支持云計(jì)算,大數(shù)據(jù)平臺(tái)環(huán)境
      • 輕量級(jí),無序在客戶端安裝agent,更新時(shí)只需在控制機(jī)上進(jìn)行更行即可
      • 批量任務(wù)執(zhí)行可以寫成腳本,不用分發(fā)到遠(yuǎn)程就可以執(zhí)行
      • 支持非root用戶管理操作,支持sudo
      • 使用python編寫,維護(hù)更簡(jiǎn)單

      二、Ansible安裝

      Ansible 自動(dòng)化運(yùn)維環(huán)境由控制主機(jī)與被管理主機(jī)組成,由于Ansible是基于SSH協(xié)議進(jìn)行通信的,所以控制主機(jī)安裝Ansible軟件后不需要重啟或運(yùn)行任何程序,被管理主機(jī)也不需要安裝和運(yùn)行任何代理程序。

      實(shí)驗(yàn)安裝環(huán)境:

      角色 主機(jī)名 IP地址 組名
      控制主機(jī) 01 192.168.100.129  
      被管理主機(jī) 02 192.168.100.128 webserver
      被管理主機(jī) 03 192.168.100.130 mysql

      三臺(tái)主機(jī)關(guān)閉防火墻:

      [root@localhost ~]# systemctl stop firewalld.service  [root@localhost ~]# setenforce 0

      安裝步驟:

      控制主機(jī)安裝ansible并生成密鑰對(duì)批量發(fā)送給被管理主機(jī)

      1.yum安裝環(huán)境包與ansible:

      yum install epel-release -y  yum install ansible –y

      2.查看ansible版本

      [root@01 ~]# ansible  --version

      自動(dòng)化運(yùn)維之Ansible服務(wù)部署詳述

      3.yum安裝完成后會(huì)生成3個(gè)文件

      [root@01 ~]# cd /etc/ansible/  [root@01 ansible]# ls

      自動(dòng)化運(yùn)維之Ansible服務(wù)部署詳述

      4.配置被管理端主機(jī)IP清單

      [root@01 ansible]# vim /etc/ansible/hosts                     //配置主機(jī)清單

      自動(dòng)化運(yùn)維之Ansible服務(wù)部署詳述

      5.雖然ansible的配置文件已經(jīng)設(shè)置完成被管理端的IP地址,但是因?yàn)閍nsible是基于ssh協(xié)議,所以還需要配置密鑰對(duì)驗(yàn)證

      [root@01 ~]# ssh-keygen -t rsa           //生成密鑰對(duì)

      自動(dòng)化運(yùn)維之Ansible服務(wù)部署詳述
      自動(dòng)化運(yùn)維之Ansible服務(wù)部署詳述

      6.ssh協(xié)議免交互代理

      [root@01 ~]# ssh-agent bash  [root@01 ~]# ssh-add

      自動(dòng)化運(yùn)維之Ansible服務(wù)部署詳述

      shell腳本批量發(fā)送公鑰

      (1).下載安裝expect

      [root@01 .ssh]# yum install expect -y                   //yum安裝expect

      (2). ping通所有可互通的主機(jī)

      [root@01 .ssh]# ansible all -m ping       //使用ansible中的ping模塊

      自動(dòng)化運(yùn)維之Ansible服務(wù)部署詳述

      ansible是基于SSH協(xié)議,所以可以ping通的主機(jī)儲(chǔ)存在.ssh/known_hosts的文件當(dāng)中。當(dāng)然就算不ping通也可以用shell腳本實(shí)現(xiàn)批量推送公鑰。

      在最新版本ansible 2.7.0中,在沒有推送公鑰形成密鑰對(duì)的情況下,無法使用ping模塊ping通的情況下,很難用authorized_key模塊去推送公鑰的。所以我更改了下shell腳本,這樣就可以在無法用ping模塊ping通的情況下直接實(shí)現(xiàn)批量推送公鑰形成密鑰對(duì)。

      [root@01 ~]# cd ~/.ssh/  [root@01 .ssh]# ls  id_rsa  id_rsa.pub  known_hosts  [root@01 .ssh]# vim known_hosts                   //查看下已經(jīng)記錄在SSH協(xié)議的主機(jī),不做任何修改操作

      自動(dòng)化運(yùn)維之Ansible服務(wù)部署詳述

      (2).編寫shell腳本實(shí)現(xiàn)批量推送公鑰

      [root@01 .ssh]# vim ~/.ssh/pushssh.sh 

      腳本如下:

      #!/bin/sh  cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  host1=`cat /etc/ansible/hosts | awk -F " " '{print $1}' | grep '^192'`  #在生產(chǎn)情況中,有很多種獲得IP的方法,本腳本最重要的就是獲得IP地址,腳本只是提供一個(gè)思路。    for i in $host1;    do    command1="scp ~/.ssh/authorized_keys root@$i:~/.ssh/authorized_keys"    password="123123"     /usr/bin/expect -c "          spawn ssh-copy-id root@$i           expect {          "*password" { send "$passwordr"; exp_continue }          }       expect eof"    done    #編寫腳本完成后保存退出    [root@01 .ssh]# sh pushssh.sh        //執(zhí)行腳本  

      PS:想要執(zhí)行這個(gè)腳本,首先需要下載安裝expect,同時(shí)被管理端主機(jī)的密碼需要是一致的。

      ———————-驗(yàn)證——————-

      查看下腳本是否執(zhí)行成功:

      自動(dòng)化運(yùn)維之Ansible服務(wù)部署詳述
      自動(dòng)化運(yùn)維之Ansible服務(wù)部署詳述

      此時(shí)就可以進(jìn)行ansible批量部署操作

      [root@01 ~]# ansible all -m command -a 'date'

      自動(dòng)化運(yùn)維之Ansible服務(wù)部署詳述

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)