ansible安裝配置

環境準備

yum -y install openssh-clients wget

rpm安裝

centos系統需要epel源,

yum –y install epel-release

yum –y install ansible # 默認安裝在/etc/ansible/目錄下

配置文件認識

p_w_picpath

ansible.cfg : # 主配置文件

p_w_picpath

hosts: # 主機,可以填ip或者主機名,注意這個webservers非常的重要和ansible.cfg配置文件有極大關係,以及下文要用這個

p_w_picpath

roles: # 權限

配置密鑰與被管理主機通信,通信方式爲SSH方式

在管理機也就是安裝anbisle這個服務的機器上,生成ssh密鑰,並把這個密鑰複製給被管理機

生成密鑰: ssh-keygen -t rsa,默認在/root/.ssh/id_rsa

p_w_picpath

拷貝密鑰到被管理機: ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

如果有以下錯誤,則表示沒有安裝openssh-clients庫,解決方法:yum -y install openssh-clients

p_w_picpath

使用ansible命令進行測試使用驗證

命令格式:ansible <host-pattern> [-m module_name] [-a args] [options],如下:

ansible all -m ping

all 表示檢測所有被管理機器, –m ping 表示使用ping這個模塊,ping通了會返回一個pong值

命令作用:測試目標主機是否存活,如存活會返回success JSON格式的返回值,

p_w_picpath

常用命令介紹

ansible-doc:

作用:獲取模塊列表以及用法,類似linux  --help的作用

p_w_picpath

ansible-doc –l:

作用:獲取列表

運行此命令可能遇到遇到的錯誤,如下:

p_w_picpath

解決方法:

sed -i 's/^#deprecation_warnings = True/deprecation_warnings = False/' /etc/ansible/ansible.cfg

rm -f /usr/lib/python2.6/site-packages/ansible/modules/extras/cloud/misc/rhevm.py

ansible-doc –s:

作用:獲取指定模塊的使用方法,如ansible-doc –s ping

p_w_picpath

命令格式

ansible  <host-pattern>  [-f forks] [-m module_name]  [-a args]

<host-pattern> # 在ansible.cfg配置文件中指明要管控哪些主機,這些主機可以用一個組的方式管控,如[webserver] [dbserver] ,all 設置所有

[-f forks] # 每一批管控多少個主機,默認貌似是5個

[-m module_name] # 指要用哪種模塊進行管理操作,注意所有的操作必須要通過模塊來指定

[-a args] # 指明模塊所用參數是哪些,除了command模塊是直接輸出執行命名之外,一般是key-vaule格式

常用模塊

command模塊:

如:ansible webservers -m command -a "ls /var/log/",注意這個commad模塊不支持管道命令(|),shell才支持。

p_w_picpath

也可以省略這個commad命令不寫,ansible webservers -a "ls /var/log/"

p_w_picpath

如給給遠程主機添加用戶:ansible webservers -a "useradd tomcat"

p_w_picpath

到被管控機器上去看一下172.17.31.43是否添加成功:

p_w_picpath

p_w_picpath

shell模塊

作用: 遠程主機在shell進程下運行命令,支持shell特性,支持管道

如給遠程主機上的用戶添加密碼:ansible webservers -m shell -a "echo 123456 | passwd --stdin tomcat" --stdin 這個選項用於 從標準輸入 管道讀入新的密碼

p_w_picpath

copy模塊

作用:把當前主機文件複製到被管控主機機器上,可以指定mode(權限)、own(所屬主)、group(所屬組)

如:ansible all -m copy -a "src=/soft/test_ansible_copy_model.txt dest=/opt/ mode=755 owner=tomcat group=tomcat"

p_w_picpath

p_w_picpath

注意-a後面的參數格式一定要對,不然會報如下錯誤:

p_w_picpath

cron模塊

作用: 在被管控主機上制定crontab週期性計劃任務

格式:ansible all -m cron -a "minute=*/10 job='/sbin/ntpdate 172.17.31.44 &> /dev/null' name=synctime"

minute=vaule  hour=vaule day=vaule month=vaule weekday=vaule job=vaule name=value(必須填寫) state=vaule

同樣的,命令參數不要寫錯了,寫錯了就會有以下紅色提示:

p_w_picpath

到被管控機器上看crontab -l 或者crontab -e :

p_w_picpath

也可以刪除遠控主機上的任務計劃:ansible all -m cron -a "state=absent name=synctime"

fetch模塊

作用:和copy模塊相反,從被管控主機上拷貝文件到管控主機上

如:ansible all -m copy -a "src=/opt/test_ansible_copy_model1.txt dest=/opt/test/ flat=yes"

flat=yes作用:

當dest=/opt/test/,test_ansible_copy_model1.txt會保存在/opt/test/目錄下

當dest=/opt/test,會拷貝test_ansible_copy_model1.txt文件,並命名爲test

file模塊

作用:對文件、文件夾、超鏈接的創建、拷貝、移動、刪除操作

test

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章