集群工具ansible使用方法


 

ansible簡介

ansible是與puppet、saltstack類似的集群管理工具,其優點是僅需要ssh和Python即可使用,而不像puppet、saltstack那樣都需要客戶端。與puppet類似,ansible也支持豐富的功能:

  • 批量執行
  • 支持模塊化,支持playbook(相比puppet還是弱些)
  • 上手容易(puppet上手有門檻)
  • 權限控制

安裝方法為:yum -y install ansiblepip install ansible

使用方法

在管理集群時,ansible需要先配置集群hosts列表以方便集群操作

$ cat /etc/ansible/hosts
[local]
# 配置密碼登陸,需要ansible本機安裝sshpass
192.168.213.135 ansible_ssh_user=root ansible_ssh_pass=root
[zabbix]
# 密鑰登陸
172.17.0.2:49154 ansible_ssh_user=root
172.17.0.4:49155 ansible_ssh_user=root
[vpn]
172.17.0.10

測試連接登陸是否OK

$ ansible local -m ping
192.168.213.135 | success >> {
    "changed": false,
    "ping": "pong"
}

ansible常見用法為ansible host-pattern -m 模塊 -a 命令,host-pattern類似於簡化的正則表達式,而模塊可以通過ansible-doc -l命令來查詢。下面是一些常用模塊的使用方法:

  • 安裝軟件:ansible local -m apt -a ‘name=gcc state=present’或者ansible local -m yum -a “name=nmap state=installed”
  • 執行命令:ansible local -m shell -a ‘uptime’
  • 拷貝文件:ansible local -m copy -a “src=/tmp/server dest=/tmp/server”
  • 文件屬性:ansible local -m file -a “dest=/tmp/server mode=755 owner=root group=root”
    *

playbook

playbook是由一個或多個“play”組成的列表。play的主要功能在於將事先歸並為一組的主機裝扮成事先通過ansible中的task定義好的角色。 

一個簡單的playbook配置如下:

- hosts: local
  remote_user: root
  tasks:
  - name: echo hi
    shell: echo "hi"

ansible還支持設置handlers,handlers是在執行tasks之后服務器發生變化之后可供調用的handler,使用起來如下:

# playbook.yml
---
- hosts: local  # hosts中指定
  remote_user: root  # 如果和當前用戶一樣,則無需指定
  tasks:
      - name: whoami
        copy: src=~/hosts dest=~/hosts.dest  #  本地拷貝到遠端
        notify:  # 如果copy執行完之后~/hosts.dest文件發送了變化,則執行
            - clear copy  # 調用handler
  handlers:
      - name: clear copy
        shell: 'mv ~/hosts.dest hosts.del'  # 假裝刪除

參考文檔


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM