自動化運維 Ansible

丶小炒肉發表於2016-05-31

自動化運維 Ansible

 

特性

(1)、no agents:不需要在被管控主機上安裝任何客戶端;

(2)、no server:無伺服器端,使用時直接執行命令即可;

(3)、modules in any languages:基於模組工作,可使用任意語言開發模組;

(4)、yaml,not code:使用yaml語言定製劇本playbook;

(5)、ssh by default:基於SSH工作;

(6)、strong multi-tier solution:可實現多級指揮。

 

 

1、執行 easy_install 安裝

 

easy_install simplejson

easy_install pip

yum install gcc python-devel

easy_install ansible

pip list

 

2、Ansible配置

(1)、SSH免金鑰登入設定

生成公鑰/私鑰

#ssh-keygen -t rsa -P ''

 

(2)、將生成的 金鑰(/root/.ssh/id_rsa.pub) 釋出到 被控主機 上

 

客戶機上: 

cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys

chmod 600 /root/.ssh/authorized_keys

完成以後記得刪除 金鑰 ! ( rm -rf /tmp/id_rsa.pub )

 

(3)、ansible配置 (配置檔案目錄為 /etc/ansible )

修改配置檔案,指定 ssh 金鑰:

mkdir -p /etc/ansible

#vim /etc/ansible/ansible.cfg

 

[defaults]

remote_port = 22                          #被控端 SSH 埠 預設為22

private_key_file = /root/.ssh/id_rsa      #金鑰 需指定 id_rsa 這個金鑰

hostfile      = /etc/ansible/hosts

 

 

 

配置被控主機(主機組定義)IP

 

#vim /etc/ansible/hosts

 

[yunwei]

172.24.0.14

172.24.0.15

 

 

 

 

(3)、簡單測試

ansible yunwei -m command -a "uptime"                      

yunwei = 指定被控端的組  

-m command = 執行命令 

-a 'uptime' = 命令

 

 

3、常用模組使用

(1)、setup

## 用來檢視遠端主機的一些基本資訊

#ansible yunwei -m setup

 

 

(2)、ping

## 用來測試遠端主機的執行狀態

#ansible yunwei -m ping

 

 

(3)、shell

# 先在本地建立一個SHELL指令碼

 

vi /tmp/yunwei.sh

------------------------------------------------------------------------------------

#!/bin/sh

ifconfig |grep inet -m 1|grep -v '127.0.0.1' |cut -d: -f2|awk '{print $2}'

------------------------------------------------------------------------------------

 

儲存 並授權

chmod +x yunwei.sh 

 

 

# 將建立的指令碼檔案分發到遠端  ( src = 本地指令碼目錄   dest = 被控機目錄  owner = 許可權 )

ansible yunwei -m copy -a "src=/tmp/yunwei.sh dest=/tmp/yunwei.sh owner=root group=root mode=0755"

 

 

# 遠端執行

ansible yunwei -m shell -a "/tmp/yunwei.sh"

 

 

 

(4)、 yum           (安裝ntpdate時間同步)

ansible yunwei -m yum -a "name=ntpdate state=installed"

 

同步時間

ansible yunwei -m command -a "ntpdate time.windows.com"

相關文章