1. 程式人生 > >Ansible介紹、安裝、遠程執行命令、拷貝文件或者目錄、遠程執行腳本

Ansible介紹、安裝、遠程執行命令、拷貝文件或者目錄、遠程執行腳本

github 軟件 ip地址 密碼 ssh doc ech 圖形 ofo

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

test-02

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介紹、安裝、遠程執行命令、拷貝文件或者目錄、遠程執行腳本