Ansible

開源運維自動化工具:基於Python開發,內置豐富模塊,通過SSH通信。
Ansible 沒有客戶端,也不需要在被管理主機上添加代理程序,通過SSH完成通信,在Windows中依賴powershell,ansible的管理端必須是Linux服務系統在管理節點通過應用模塊將指令發送到被管理主機上。

一.ansible安裝

(1) 通過yum安裝ansible
[root@node1 ~]# yum -y install ansible
(2) 查看ansible版本
[root@node1 ~]# ansible --versionansible 2.3.1.0
(3) 創建ssh面交互登錄
[root@node1 ~]#ssh-keygen -t rsa
[root@node1 ~]#ssh-copy-id [email protected]

(4) ansible配置
[root@node1 ~]# vim /etc/ansible/hosts
例:
[web]
192.168.1.2
192.168.1.3

二、ansible常用命令

(1)ansible
(2)ansible-doc
(3)ansible-playbook
(4)ansible-console

三、ansible模塊

  1. command模塊:在遠程主機執行命令,不支持管道、重定向等shell的特性,常用的參數如下

 chdir:在遠程主機上運行命令前要提前進入的目錄
 creates:在命令運行時創建一個文件,如果文件已存在,則不會執行創建任務
 removes:在命令運行時移除一個,如果文件不存在,則不會執行移除任務
 executeable:指明運行命令的shell程序

2.shell模塊:shell模塊在遠程主機執行命令,相當於調用遠程主機的shell進程,然後在該shell下打開一個子shell運行命令。和command模塊的區別是它支持shell特性:如管道、重定向等

3.copy模塊:用於複製指定主機文件到遠程主機的指定位置,常見參數如下:
 dest:指出複製文件的目標目錄位置,使用絕對路徑。如果源是目錄,則目標也要是目錄,如果目標文件已存在,會覆蓋原有內容
 src:指出源文件的路徑,可以使用相對路徑和絕對路徑,支持直接指定目錄。如果源是目錄,則目標也要視目錄
 mode:指出複製時,目標文件的權限,可選
 owner:指出複製時,目標文件的屬主,可選
content:指出複製到目標主機上的內容,不能和src一起使用,相當於複製content指明的數據到目標文件中

4.hostname模塊:用於管理遠程主機上的主機名,常用參數如下
 name:指明主機名

5.yum模塊:基於yum機制,對遠程主機管理程序包,常用參數如下
 name:程序包名稱,可以帶上版本號。若不知名版本,則默認爲最新版本
 state=present|atest|absent:指明對程序包執行的操作:present表明安裝程序包,latest表示安裝最新版本的程序包,absent表示卸載程序包
 disablerepo:在用yum安裝時,臨時禁用某個倉庫的ID
 enablerepo:在用yum安裝時,臨時啓用某個倉庫的ID
 conf_file:yum運行時的配置文件,而不是使用默認的配置文件
 disable_gpg_check=yes|no:是否啓用完整性校驗功能

6.service模塊:用來管理遠程主機上的服務的模塊,常見參數如下
 name:被管理的服務名稱
 state=started|stopped|restarted:動作包含啓動,關閉或重啓
 enable=yes|no:表示是否設置該服務開機自啓動
 runlevel:如果設定了enabled開機自啓動,則要定義在那些運行目標下自動啓動

7.user模塊:用於管理遠程主機上的用戶賬戶,常見參數如下
 name:必選參數,賬號名稱
 state=present|absent:創建賬號或者刪除賬號,present表示創建,absent表示刪除
 system=yes|no:是否爲系統賬戶
 uid:用戶的基本組
 group:用戶的基本組
 groups:用戶的附加組
 shell:默認使用的shell
 home:用戶的家目錄
 mve_home=yes|no:如果設置的家目錄已經存在,是否將已存在的家目錄進行移動
 pssword:用戶的密碼,建議使用加密後的字符串
 cmment:用戶的註釋信息
 rmore=yes|no:當state=absent時,是否要刪除用戶的家目錄

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