溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

自動化運維 ansble

發(fā)布時間:2020-07-31 08:35:26 來源:網(wǎng)絡 閱讀:247 作者:wx5a98a78793203 欄目:系統(tǒng)運維

1.安裝配置ansble

yum install epel-release -y #安裝epel倉庫
yum install ansible -y

2.配置主機清單

vim /etc/ansible/hosts
[web-proxy]
#分組
192.168.1.112 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=yxy7714707@
#IP ssh的端口 ssh賬戶和密碼
[web-server]
192.168.1.12 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=yxy7714707@
192.168.1.13 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=yxy7714707@

3.測試

ansible all -m ping
自動化運維 ansble
綠色說明成功了
自動化運維 ansble
這種報錯是應為,第一次ssh連接,對方主機的指紋不在這臺電腦上,用ssh先連接下即可
anisble命令語法: ansible [-i 主機文件] [-f 批次] [組名] [-m 模塊名稱] [-a 模塊參數(shù)]
-i 可選擇主機清單,不指定默認到/etc/ansible/hosts找 后面跟生效范圍,可以選擇單個ip(單臺主機)或者一組主機或者all(該清單里的所有主機)。 -m 模塊(可以理解為命令) -a模塊參數(shù)

4.ansible-playbook 簡單小腳本

vim web.yml #寫自動化腳本

  • hosts: web-server
    #應用生效的組
    vars:
    IP: "{{ ansible_ens33['ipv4']['address']}}"
    #把需要下發(fā)機器的ip賦值給IP這個變量,應用不同機器時,這個值會根據(jù)機器的實際ip改變
    port: 233
    #賦值233 給port這個變量,變量也可以在/etc/ansible/hosts文件里賦值
    remote_user: root
    tasks:
    • name: 安裝nginx
      yum: name=nginx state=latest
    • name: 復制nginx配置文件,如果執(zhí)行了擇觸發(fā),下面的動作 重啟nginx
      copy: src=/etc/nginx/nginx.conf dest=/etc/nginx/nginx.conf
    • name: 修改nginx的的監(jiān)聽IP
      lineinfile: dest=/etc/nginx/nginx.conf regexp='listen 80 default_server;' line='listen {{port}} default_server;'
      #regexp里面是正則匹配,記住如果匹配的字符有高亮要加轉義,line里面是要替換的字符,{{port}}是調用的變量,
      notify:
      #觸發(fā)器,只有上面那個命令執(zhí)行了才會調用以下腳本
    • cq nginx
      #表示如果上面那個語句執(zhí)行了,就調用cq nginx指令,該指令在下面,handlers里定義的
    • name: 復制index主頁文件
      copy: src=/usr/share/nginx/html/index.html dest=/usr/share/nginx/html/index.html
    • name: 輸入IP地址到index.html中
      lineinfile: dest=/usr/share/nginx/html/index.html regexp="192.168.0.0" line="{{IP}}:{{port}}"
    • name: 啟動nginx服務
      service: name=nginx state=started
      handlers:
    • name: cq nginx
      service: name=nginx state=restarted
      #PS yml腳本 格式及其嚴格,請嚴格按照上述格式書寫

ansible-playbook web.yml #運行腳本
自動化運維 ansble
8個命令全部OK,表示全部執(zhí)行成功
自動化運維 ansble
訪問其中一臺的233端口,發(fā)現(xiàn)已經(jīng)有內容了,內容還是根據(jù)參數(shù)里變量自己生成的。

5.反代腳本,ansible模板的使用

cp /etc/nginx/nginx.conf nginx.conf.j2
#復制一個nginx配置文件,修改成模板
vim nginx.conf.j2
自動化運維 ansble
增加后端web 組
自動化運維 ansble
把端口改成{{port}} ,等會傳遞的時候直接用變量替換
vim proxy.yml #編寫自動化安裝反代腳本

- hosts: web-proxy
  #生效范圍,web-proxy組
  vars:
    port: 666
    #賦值233 給port這個變量,變量也可以在/etc/ansible/hosts文件里賦值
  remote_user: root
  tasks:
  - name: 安裝nginx
    yum: name=nginx state=latest
  - name: 傳遞模板文件
    template: src=/root/ansible/nginx.conf.j2 dest=/etc/nginx/nginx.conf
    #把模板文件傳遞過去,里面的端口我已經(jīng)換成了{{prot}},傳遞的過程會直接替換成上面的變量參數(shù)666
  - name: 啟動nginx服務
    service: name=nginx state=started

ansible-playbook proxy.yml #運行腳本
自動化運維 ansble
這是我第二次運行,4個OK,命令全部執(zhí)行成功,ansible具有冪等性,已經(jīng)在目標狀態(tài)了,ansible不會再次運行的
自動化運維 ansble
自動化運維 ansble
F5 刷新,可以均衡負載,反代成功

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI