Ansible自動化運維工具的使用

                             Ansible自動化運維工具的使用
 
 
 
host lnventory 管理主機 ip  root帳號密碼 ssh端口
core modules 核心模塊(user server yum等模塊)
custom modules 自定義模塊 支持任何編程語言
connection plugins 鏈接插件,Ansible和host通訊使用
 
優勢:
Stupied Simple ,上手簡單,學習曲線平滑
SSH by default ,安全,無需安裝客戶端
配置簡單、功能強大、擴展性強
支持API及自定義模塊,可經過Python輕鬆擴展
經過Playbooks來定製強大的配置、狀態管理
提供一個功能強大、操做性強的Web管理界面和REST API接口——AWX平臺
冪等性:一個操做重複屢次操做 內容不變
 
 
1、ansible安裝(只在server端安裝)
一、yum -y install epel-release
              yum clean all 
              yum makecache
 
二、yum install ansible
 
2、ansibles配置(無密碼登錄)
一、client:ssh-keygen  #生成祕鑰文件和私鑰文件
 
二、server:scp id_rsa.pub root@192.168.88.5:/root/.ssh/authorized_keys 
     #把id_rsa.pub傳到client端而且必須命名爲authorized_keys
(ssh-copy-id -i id_rsa.pub root@192.168.88.5)傳文件的另外一種方法
 
三、server: ssh root@192.168.88.5   #測試是否實現無需密碼驗證登錄
 
四、serve:定義管控主機
vim /etc/ansible/hosts  
[webservers]下寫入client ip (我這裏用了兩臺client)
 
(www.[1:60].benet.com 用於多臺client
    ansible all      測試全部組                )
 
ansible webservers -m ping  #查看client端是否ping通
 
3、ansible經常使用命令
ansible-doc -l  #查看支持的模塊
ansible命令應用基礎
        ansible <host-pattern> [options]
      -f forks:啓動併發線程數
      -m model_name:要使用的模塊
                 -a args:特有的參數
 
 
ansible webservers -m ping  #查看client端是否ping通
ansible webservers -m setup #查看client端信息
ansible webservers -m copy -a "src=/root/test.txt dest=/root/test1.txt"
#copy文件到client端
ansible webservers -m user -a "name=user state=present" #在client端建立用戶
ansible webservers -m user -a "name=user state=absent" #在client端刪除用戶
ansible  webservers -m yum -a "name=tree state=latest" #yum安裝
ansible webservers -m service -a "name=httpd state=stopped enabled=no" #中止httpd服務
ansible webservers -m script -a "/tmp/test.sh"  #運行腳本
 
#查看時間
ansible webservers -m command 'date' 
ansible webservers -a "date"
 
4、palybook
 
文件名爲.yml結尾
用  ansible-playbook xxx.yml  運行
 
一、基礎
 
二、變量(把tree給變量packages)
 
三、迭代(item)
 
四、觸發器notify
只要  - name: cp http.conf 執行了就會觸發handlers
handlers是在全部任務執行完以後纔會觸發,全部要寫在最後
(寫在中間不執行)
 
五、模板templates
 
改兩臺client的httpd的不一樣端口號
1)cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.j2
       vim /etc/httpd/conf/httpd.conf.j2  
  (j2是Jinja2  模板文件)
 
2)添加端口號
     vim /etc/ansible/hosts
 
3)vim test5.yml  

 

 
4)分別在兩臺client端查看端口號
 
 
六、單個任務執行tags
   例:只執行單個add_user任務
   執行命令 ansible-playbook test6.yml --tags="add_user"
 
 
 
七、角色roles
1)在/root目錄下建立ansible_playbooks目錄
2)在 ansible_playbooks目錄下建立roles目錄
3)在roles目錄下建立角色名  如:webservsers dbservers
4)在webservsers目錄下建立files,handlers,meta,tasks,templates,vars目錄(不用到的目錄能夠不建立)
5)
files裏面存放須要調用的文件
 
tasks裏面存放要執行任務的文件 (文件命名必須爲main.yml)
src後的文件會自動到files裏調用
 
handlers裏面存放觸發的任務的文件 文件命名必須爲main.yml)
 
6)最後回到ansible_playbooks目錄下建立一個site.yml文件
ansible-playbook site.yml 執行以後會自動調用角色webservers目錄裏面建立的任務
相關文章
相關標籤/搜索