[ansible]

这里主要记录一下常规的ansible命令

ansible的安装:

ansible的安装可以使用命令:yum install ansible

ansible的配置文件:

这里默认使用了all作为ansible命令的组,实际使用中,可以自己根据实际需求在文件/etc/ansible/host中添加主机组。这里要注意的是被控制的主机需要添加ansible服务器的公钥,确保ssh能够没有密码就能够访问被控制的主机。

要使ansible的服务无密码访问被控制的主机还需将ansible主机的公钥加到被控制主机的authorized_key中。

ansible命令通常由以下格式组成:

ansible <ansible.client> -m <module> -a <args>

其中<ansible.client>可以是配置文件中的服务器组名,ip,域名等一切能表达主机的名称。

<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"

//直接安装指定软件,如果已安装则查看版本信息。