[ansible]shell
這裏主要記錄一下常規的ansible命令服務器
ansible的安裝:網絡
ansible的安裝能夠使用命令:yum install ansiblessh
ansible的配置文件:ide
這裏默認使用了all做爲ansible命令的組,實際使用中,能夠本身根據實際需求在文件/etc/ansible/host中添加主機組。這裏要注意的是被控制的主機須要添加ansible服務器的公鑰,確保ssh可以沒有密碼就可以訪問被控制的主機。rest
要使ansible的服務無密碼訪問被控制的主機還需將ansible主機的公鑰加到被控制主機的authorized_key中。ip
ansible命令一般由如下格式組成:rem
ansible <ansible.client> -m <module> -a <args>域名
其中<ansible.client>能夠是配置文件中的服務器組名,ip,域名等一切能表達主機的名稱。it
<args>
[-k] //每次都要詢問密碼
[-u <username>] [--sudo] //以<username>的身份運行,再加--sudo獲取root權限
-m的<module>:
command:
ansible <ansible.client> -m command -a "<command>"
//遠程發送命令
copy:
ansible <ansible.client> -m copy -a "src=</path/to/localfile> dest=</path/to/remotefile>"
//遠程傳文件
file:
ansible <ansible.client> -m file -a "dest=</path/to/remotefile> mode=<chmod.mun> [owner=<username>] [group=<group>]"
//遠程建立文件,能夠設置文件的權限與用戶名
//第一次生成文件要state=touch
ansible <ansible.client> -m file -a "dest=</path/to/remotedir> mode=<chmod.num> state=directory"
//遠程建立文件夾
ansible <ansible.client> -m file -a "dest=</path/to/remotefile> state=absent"
//遠程刪除文件
ping:
ansible <ansible.client> -m ping
//ping全部<ansible.client>的主機,查看ansible服務器和被控制主機的網絡是否通。
service
ansible <ansible.client> -m service -a "name=<service.name> state={started|restarted|stoped}"
//修改服務的狀態
shell:
ansible <ansible.client> -m shell -a '<command>'
//向遠程主機發送命令
user:
ansible <ansible.client> -m user -a "name=<username> [passwd=<crypted.passwd>]"
//添加一個用戶
根據實際狀況,密碼這個項最好是先在一臺主機上建一個密碼,而後在/etc/shadow裏提取。並且某些系統中密碼是包含特殊字符$,因此密碼要用單引號擴起來而$前要用\符號轉譯。
yum:
ansible <ansible.client> -m yum -a "name=<software.name> state=present"
//直接安裝指定軟件,若是已安裝則查看版本信息。