溫馨提示×

溫馨提示×

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

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

Ansible自動化運維

發(fā)布時間:2020-07-21 06:54:44 來源:網(wǎng)絡 閱讀:411 作者:mb5d03569e7eb16 欄目:系統(tǒng)運維

Ansible中使用的不同角色(使用者,Ansible工具集,作用對象)
lnventory是Ansible管理主機信息的配置文件,默認存放在/etc/ansible/hosts中。
Ansible工具集包含(lnventrol,Modules,Pluginx和APL)
lnventrol:管理主機的清單
Modules:執(zhí)行命令模塊
APl:接口
Ansible:核心執(zhí)行工具
直接實驗!
三臺linux服務器,其中一臺Ansible服務器。
分別為192.168.1.1 192.168.1.2 192.168.1.3Ansible自動化運維
以一臺為例,關(guān)閉防火墻,selinux,
服務器上配置如下:
一,yum安裝Ansible
Ansible自動化運維
Ansible自動化運維
二,進入配置文件加上節(jié)點ip
vim /etc/ansible/hosts
Ansible自動化運維
管理的主機ip
三,創(chuàng)建ssh免交互式登錄(就是直接登錄不需要密碼)
(1)從ansible主機上生成密鑰對
Ansible自動化運維
(2)復制公鑰到倆個要管理的主機(這里就演示一個)
Ansible自動化運維
然后輸入:ssh 192.168.1.2直接就能切換過去,不需要密碼
(3)檢查所有之際是否存活,命令如下
Ansible自動化運維
·一般會用三種顏色來表示執(zhí)行的結(jié)果:紅色,綠色
其中:紅色表示執(zhí)行過程有異常,表示執(zhí)行后目標有變化,綠色表示執(zhí)行成功且沒有對目標主機做修改。

(4)command模塊
command模塊在遠程主機執(zhí)行命令,不支持管道符,重定向等shell的特性
Ansible自動化運維
顯示出倆個主機的用戶
(5)shell模塊
shell模塊在遠程主機執(zhí)行命令,和command模塊的區(qū)別在于它支持shell特性,如管道符,重定向等
Ansible自動化運維
web是清單里面包括了倆個主機(可以多個,在清單里添加就可以)在倆太主機/tmp下創(chuàng)建了倆個HELLOW,txt的文件
(6)copy模塊
用于復制指定主機的文件到別的主機
dest:指出目標文件的位置,
src:指出源文件的路徑Ansible自動化運維
在本主機上創(chuàng)建個目錄直接復制到倆個節(jié)點上的/tmp下
(7)hostname模塊
用于遠程管理主機的主機名
Ansible自動化運維
把主機名改為了asd
(8)yum模塊
用于對遠程主機管理程序包前提要安裝的主機必須配置好yum,這只是提供命令遠程,比如安裝http,命令如下,
state=(present,latest,absent )(安裝,安裝最新,卸載)
Ansible自動化運維
(9)service模塊
用與管理遠程主機上的服務,開啟,關(guān)閉,查看或開機自啟
Ansible自動化運維
(10)user模塊
用于管理遠程主機的用戶賬號比如創(chuàng)建用戶,uid號,用戶的組,用戶的附加組
Ansible自動化運維
四,Playbook配置文件
編寫腳本來管理遠程主機
ansible腳本必須對齊
提前先修改一下配置文件:vim /etc/ansible/hosts
Ansible自動化運維
Ansible自動化運維
標準的
Ansible自動化運維
這是語法檢測,顯示下面的意思是沒有錯誤
這是創(chuàng)建用戶的腳本,如下:---

  • hosts: web1
    remote_user: root
    tasks:
    • name: adduser
      user: name=user2 state=present
      tags:
      • aaa
    • name: addgroup
      group: name=root system=yes
      tags:
      • bbb
  • hosts: web2
    remote_user: root
    tasks:
    • name: copy file to web
      copy: src=/etc/passwd dest=/home
      tags:
      • ccc
        ...
        執(zhí)行腳本
        Ansible自動化運維
        五,觸發(fā)器
        編寫腳本更改遠程主機的端口號并重新啟動

  • hosts: web1
    remote_user: root
    tasks:
    • name: change port
      command: sed -i 's/Listen\ 80/Listen\ 8080/g' /etc/httpd/conf/httpd.conf
      notify:
      • restart httpd server
        handlers:
    • name: restart httpd server
      service: name=httpd state=restarted
      ...
      六,角色
      角色一般存放在/etc/ansible/roles/目錄,比如編寫一個創(chuàng)建數(shù)據(jù)庫,在數(shù)據(jù)庫中創(chuàng)建個表,
      首先創(chuàng)建多個目錄來存放
      Ansible自動化運維
      然后進入mariadb文件夾中的tasks創(chuàng)建一個腳本
      Ansible自動化運維
      內(nèi)容為:

  • name: install mariadb
    yum: name=mariadb-server state=present
  • name: move config file
    shell: "[ -e /etc/my.cnf ]&& mv /etc/my.cnf /etc/my.cnf.bak"
  • name: provide a new config file
    copy: src=my.cnf dest=/etc/my.cnf
  • name: reload mariadb
    shell: systemctl restart mariadb
  • name: create database testdb
    shell: mysql -u root -e "create database testdb;grant all on testdb.* to'test'@'192.168.8.%' identified by 'test123';flush privileges;"
    notify:
    • restart mariadb
      ...
      句號表示 -
      然后進入hanglers文件夾中編寫和腳本
      Ansible自動化運維
      內(nèi)容為

  • name: restart mariadb
    service: name=mariadb state=restarted
    ...
    再進入files文件夾中復制mysql配置文件
    Ansible自動化運維
    最后進入ansible文件夾中創(chuàng)建腳本
    Ansible自動化運維
    最后啟動腳本
    倆個主機就有mysql數(shù)據(jù)庫里面有一個testdb的表
    實驗完成
向AI問一下細節(jié)

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

AI