站長資訊網
        最全最豐富的資訊網站

        自動化運維管理工Ansible安裝與配置

        一、Ansible概述

        • 互聯網的快速發展導致產品更新換代速度加快,按照傳統維護操作使得工作效率低下,自動化運維以盡可能安全高效的完成工作為目的,實現代替傳統工作方式。
        • 自動化運維工具劃分為兩類:
        • 一是需要使用代理工具的,也就是基于agent程序來實現管理功能,例如puppet、func、zabbix等
        • 二是不需要代理配置工具的,可以直接基于SSH服務來完成管理功能,如ansible,fabric等。

        • 自動化運維工具比較:
        工具 開發語言 結構 配置文件格式 運行任務
        Ansible Python YAML 支持命令行
        SaltStack Python C/S YAML 支持命令行
        Puppet Ruby C/S Ruby語法格式 通過模塊實現

        Ansible

        • Ansible基于Python開發,集合了眾多優秀運維工具的優點,實現了批量運行命令、部署程序、配置系統等功能。默認通過SSH協議進行遠程命令執行或下發配置,無需任何客戶端代理軟件,從而使得自動化環境部署變得簡單,同時支持多臺主機并行管理,使得管理主機更加便攜。

        二、安裝部署Ansible服務

        • ansible自動化運維環境有控制主機與被管理主機組成,由于ansible是基于SSH協議進行通信的,所以控制主機安裝ansible軟件后不需要重啟或者運行任何程序,被管理主機也不需要安裝或者運行任何代理程序。

        2.1、安裝部署Ansible

        服務器 IP地址 操作系統 組名
        控制主機 192.168.144.112 CentOS7.3 x86_64
        被控制主機1 192.168.144.111 centos7.3 x86_64 webserver
        被控制主機2 192.168.144.114 centos7.3 x86_64 mysql
        • 1)配置yum源

        yum install epel-release

        • 2)安裝ansible

        yum install ansible -y
        yum install tree -y

        • 3)安裝完成后,利用tree命令查看配置文件結構。

        tree /etc/ansible

        /etc/ansible/  ├── ansible.cfg   //主配置文件  ├── hosts         //管控主機文件  └── roles        //角色目錄

        自動化運維管理工Ansible安裝與配置

        2.2、配置主機清單

        vim /etc/ansible/hosts

        [webserver]      //主機分類組名
        192.168.144.111  //主機IP地址或者是域名

        [mysql]
        192.168.144.114

        2.3、利用SSH實現登錄

        • 控制服務器上操作,為了避免ansible下發指令時輸入被管理主機的密碼,需要使用SSH證書簽名達到免密登錄效果。使用ssh-keygen產生一對密匙,使用ssh-copy-id來下發公匙。

        ssh-keygen -t rsa
        ssh-copy-id root@192.168.144.111 //發送公匙給被控服務器
        ssh-copy-id root@192.168.144.114

        • 當被控制服務器接收到公匙后,實際已經可以通過ansible進行命令控制,只是,存在每次都需要輸入私鑰密碼交互式驗證較為麻煩,因此需要設置免交互代理。

        ssh-agent bash
        ssh-add //輸入私鑰密碼即可

        自動化運維管理工Ansible安裝與配置

        三、Ansible應用命令模塊

        3.1、ansible命令格式

        • 命令格式:ansible [主機] [-m 模塊] [-a args]
        • ansible-doc -l //列出所有已安裝的模塊 注:按q退出
        • ansible-doc -s user //-s列出user模塊描述信息和操作動作

        自動化運維管理工Ansible安裝與配置

        3.2、command模塊

        • Ansible管理工具默認模塊,若省略-m command,ansible默認使用command的模塊

        ansible 192.168.144.111 -m command -a ‘date’ //指定ip執行date
        ansible webserver -m command -a ‘date’ //指定分類執行date
        ansible mysql -m command -a ‘date’
        ansible all -m command -a ‘date’ //所有hosts主機執行date命令
        ansible all -a ‘ls -l /’ 如果不加-m模塊,則默認運行command模塊

        3.2、cron模塊

        • 兩種狀態,present表示添加,默認狀態,absent表示移除

        ansible-doc -s cron //查看cron模塊信息
        ansible webserver -m cron -a ‘minute=”*/1″ job=”/bin/echo heihei” name=”test cron job”‘

        ansible webserver -m cron -a ‘hour=”23″ job=”/bin/echo heihei” name=”test cron job”‘    //每天23點執行,若想每隔23個小時執行需要改成hour=”*/23″
        ansible webserver -m cron -a ‘weekday=”6″ job=”/bin/echo heihei” name=”test cron job”‘

        ansible-doc -s cron  //結合查看詳細用法

        ansible webserver -a ‘crontab -l’
        ansible webserver -m cron -a ‘name=”test cron job” state=absent’ //移除計劃任務,假如該計劃任務沒有取名字,name=None即可

        3.3、user模塊

        • 用于創建新用戶,更改刪除已存在用戶,name選項用于指定用戶名稱。
        • user模塊是請求的是useradd, userdel, usermod三個指令
        • 可指定新建用戶的uid,group所屬組

        ansible webserver -m user -a ‘name=”test1″‘
        ansible webserver -m user -a ‘name=”test2″ shell=/sbin/nologin’ //添加用戶指定shell登錄方式
        ansible webserver -m command -a ‘tail /etc/passwd’ //查看用戶
        ansible webserver -m user -a ‘name=”test1″ state=absent’ //刪除用戶test01

        3.4、group模塊

        • 針對用戶的組進行管理,請求groupadd、groupdel、groupmod三個指令

        ansible-doc -s group //查看group模塊幫助文檔
        ansible mysql -m group -a ‘name=mysql gid=306 system=yes’ //創建mysql組,指定gid,設置為系統組
        ansible mysql -a ‘tail /etc/group’
        ansible mysql -m user -a ‘name=test01 uid=306 system=yes group=mysql’ //使用user模塊添加用戶,并添加到mysql組
        ansible mysql -a ‘tail /etc/passwd’
        ansible mysql -a ‘id test01’

        3.5、copy模塊

        • 用于實現文件復制和批量文件下發,src用來定義文件源路徑,dest定義被管理主機的文件路徑,owner指定屬主,group指定屬組,mode指定文件權限。

        ansible-doc -s copy
        ansible mysql -m copy -a ‘dest=/opt/123.txt content=”heihei” owner=test01 group=test01 mode=600’ //新建文件且指定內容
        ansible mysql -a ‘ls -l /opt’
        ansible mysql -m copy -a ‘src=/etc/fstab dest=/opt/fstab.back owner=root mode=640’ //復制文件

        3.6、file模塊

        • 在ansible中使用file模塊來設置文件屬性,其中使用path指定文件路徑,使用src定義源文件路徑,使用name或者dest來替換創建文件的軟鏈接。

        ansible-doc -s file
        ansible mysql -m file -a ‘owner=root group=root mode=755 path=/opt/123.txt’ //更改文件的屬主屬組
        ansible mysql -m file -a ‘src=/opt/123.txt dest=/opt/123.txt.bk state=link’ //創建軟連接
        ansible mysql -m file -a ‘path=/opt/test.txt state=touch’ //新建一個空文件,若需要指定內容需要copy模塊,content指定內容

        3.7、ping模塊

        • 在ansible中使用ping模塊來檢測指定主機的連通性。

        ansible all -m ping

        3.8、yum模塊

        • 負責在被管理的主機上安裝與卸載軟件包,但是需要前提在每個節點配置自己的yum倉庫,其中name指定軟件包名稱,state=absent為選擇卸載軟件包。

        ansible-doc -s yum
        ansible mysql -m yum -a ‘name=httpd’
        ansible mysql -m yum -a ‘name=httpd state=absent’
        ansible mysql -m command -a ‘rpm -q httpd’

        3.9、service模塊

        • 控制服務的運行狀態,enabled表示打開開機自啟動,取值為true或者false,使用name定義服務名稱,使用state指定服務狀態,取值為started、stopped、restarted.(此處注意很多參數后有ed,注意stopped)

        ansible-doc -s service
        ansible mysql -m service -a ‘name=httpd enabled=true state=started’ //設置httpd開啟自啟動,且狀態為開啟
        ansible mysql -m command -a ‘systemctl status httpd’

        3.10、shell模塊

        • 用于創建用戶無交互模式給用戶設置密碼。

        ansible-doc -s shell
        ansible mysql -m shell -a ‘echo abc123 | passwd –stdin test’ //為test用戶創建面交互式密碼

        3.11、script模塊

        • 可以將本地腳本復制到被管理主機上進行運行,需要注意的是,使用相對路徑指定腳本!!!

        ansible-doc -s script
        vi test.sh

        #!/bin/bash
        echo “hello ansible from script”> /opt/script.txt

        chmod +x test.sh
        ansible mysql -m script -a ‘test.sh’

        3.12、setup模塊

        • 查看被管理主機的facts(facts是ansible采集被管理主機設備信息的一個功能)每個被管理主機在接受并運行管理命令之前,都會將自己的相關信息(操作系統版本IP地址等)發送給控制主機。

        ansible-doc -s setup
        ansible mysql -m setup

        自動化運維管理工Ansible安裝與配置

        下面關于Ansible的文章您也可能喜歡,不妨參考下:

        使用Ansible批量管理遠程服務器  http://m.0106606.com/Linux/2015-05/118080.htm
        在 CentOS 7 中安裝并使用自動化工具 Ansible  http://m.0106606.com/Linux/2015-10/123801.htm
        CentOS 7上搭建Jenkins+Ansible服務  http://m.0106606.com/Linux/2016-12/138737.htm
        Linux下源碼編譯安裝Ansible及排錯記錄  http://m.0106606.com/Linux/2017-03/141427.htm
        Ansible基礎—安裝與常用模塊  http://m.0106606.com/Linux/2017-02/140216.htm
        Ansible配置及使用  http://m.0106606.com/Linux/2017-03/142121.htm
        自動化運維工具Ansible使用教程 http://m.0106606.com/Linux/2017-12/149671.htm
        自動化運維工具之 Ansible 介紹及安裝使用  http://m.0106606.com/Linux/2016-12/138104.htm
        自動化運維之Ansible詳解  http://m.0106606.com/Linux/2017-03/142191.htm
        Ansible入門notify和handlers  http://m.0106606.com/Linux/2017-02/140871.htm
        CentOS 6.5安裝自動化工具Ansible和圖形化工具Tower  http://m.0106606.com/Linux/2017-03/141422.htm

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产乱人伦偷精品视频免下载| 国产成人亚洲精品91专区手机| 日韩精品一区二区三区大桥未久 | 精品水蜜桃久久久久久久| 国产精品视频一区二区噜噜| 亚洲国产精品成人一区 | 亚洲精品无码专区2| 国内精品国语自产拍在线观看| 国产精品免费AV片在线观看| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 91人妻人人澡人人爽人人精品| 精品国产精品国产偷麻豆| 亚洲福利精品一区二区三区 | 久热这里只有精品12| 亚洲精品和日本精品| 麻豆国内精品久久久久久| 国产精品女同一区二区久久| 日韩精品国产自在久久现线拍| 国产精品久久久久久福利69堂| 久久精品国产亚洲AV电影| 亚洲∧v久久久无码精品| 尤物yw午夜国产精品视频| 西瓜精品国产自在现线| 亚洲AV永久无码精品一区二区国产 | 国产这里有精品| 精品久久久久久久久久久久久久久 | 91麻豆精品国产91久久久久久| 天天爽夜夜爽精品视频app| 黑人精品videos亚洲人| 99麻豆久久久国产精品免费| 国产麻豆精品一区二区三区v视界| 亚洲国产精品一区二区成人片国内 | 日韩福利视频精品专区| 日本精品少妇一区二区三区| 久久久久久无码国产精品中文字幕| 久久精品国产精品亚洲| 麻豆国产精品VA在线观看不卡| 香蕉依依精品视频在线播放| 亚洲精品永久在线观看| 无码国内精品人妻少妇蜜桃视频| 亚洲Av永久无码精品三区在线|