Ansible介紹、安裝、遠程執行命令、拷貝文件或者目錄、遠程執行腳本
不需要安裝客戶端,通過sshd去通信
基於模塊工作,模塊可以由任何語言開發
不僅支持命令行使用模塊,也支持編寫yaml格式的playbook,易於編寫和閱讀
安裝十分簡單,centos上可直接yum安裝
有提供UI(瀏覽器圖形化)www.ansible.com/tower,收費的
官方文檔 http://docs.ansible.com/ansible/latest/index.html
ansible已經被redhat公司收購,它在github上是一個非常受歡迎的開源軟件,github地址https://github.com/ansible/ansible
一本不錯的入門電子書 https://ansible-book.gitbooks.io/ansible-first-book/
Ansible安裝
準備兩臺機器
test-01 192.168.1.48
test-02 192.168.1.67
只需要在test-01上安裝ansible,然後再做ssh密鑰認證,使得在test-01 ssh(無密碼登錄)test-02,也要ssh(無密碼登錄)test-01
yum install -y ansible
驗證:
[root@test-01 ~]# rpm -qa ansible
ansible-2.6.0-1.el7.noarch
vi /etc/ansible/hosts
[testhost]
test-01 #可以寫ip地址,這裏是寫的主機名,但是得寫入/etc/hosts
vi /etc/hosts
192.168.1.48 test-01
192.168.1.67 test-02
Ansible遠程執行命令
ansible ?testhost -m command -a ‘w‘
解析:testhost:主機組
-m :後面接模塊方法
-a :後面是命令
Ansible拷貝文件或者目錄
對testhost 組拷貝文件,目標中的tt不存在時就會創建,存在時就會覆蓋原來的內容,寫入新的內容
ansible testhost -m copy -a "src=/root/tt.log dest=/tmp/tt owner=root group=root mode=0755"
復制目錄,定義所屬組,權限為755,當test-02不存在時就會創建,並把shell 傳入到/tmp/test-02/下
ansible test-02 -m copy -a "src=/root/shell dest=/tmp/test-02/ owner=root group=root mode=0755"
Ansible遠程執行腳本
首先創建一個shell腳本
[root@test-01 opt]# cat /opt/test.sh
#!/bin/bash
echo date
> /tmp/ansible_test.txt
然後把該腳本分發到各個機器上
ansible testhost -m copy -a "src=/opt/test.sh dest=/opt/test.sh mode=0755"
最後是批量執行該shell腳本
ansible testhost -m shell -a "/opt/test.sh"
shell模塊,還支持遠程執行命令並且帶管道
ansible testhost -m shell -a?"cat /etc/passwd|wc -l "
Ansible介紹、安裝、遠程執行命令、拷貝文件或者目錄、遠程執行腳本