首页 > 代码库 > ansible常用命令

ansible常用命令

ad-hoc常用命令是用来解决一些常用的简单的配置命令,而且这些命令的执行速度很快。adhoc可以不用写playbooks,使用方便简单。

man ansible
ansible <pattern> [-f forks] [-m module] [-a args]
ARGUMENTS
    pattern
        组名,或者主机名,匹配hosts文件。
OPTIONS
    -v --verbose
      详细模式,如果命令执行成功,输出详细的结果,  
    -i PATH --inventory=PATH
      指定host文件的路径,默认是在/etc/ansible/hosts
    -f NUM --forks=NUM
      NUM是指定一个整数,默认是5,指定fork开启同步进程的个数。
    --private-key=PRIVATE_KEY_FILE_PATH
      使用指定的文件建立认证连接
    -m NAME --module-name=NAME
      指定使用的module名称
    -m DIRECTORY --module-path=DIRECTORY
      指定module的目录来加载module,默认是/usr/share/ansible,
    -a ARGUMENTS
      指定module模块的参数
    -k --ask-pass
      提示输入ssh的密码,而不是使用基于ssh的密钥认证
    -K --ask-sudo-pass    
      提示输入sudo密码,与--sudo一起使用
    -o --one-line
      在一行内输出所以的内容
    -s --sudo
      -u指定用户的时候,使用sudo获得root权限
    -t DIRECTORY --tree=DIRECTORY
      将输出放在指定的目录下,命名为每一个主机的名称
    -T SECONDS --timeout=SECONDS
      超时时长
    -B NUM --background=NUM
      在后台运行命令,在指定NUM秒后kill该任务
    -P NUM --poll=NUM
      每隔NUM秒,poll一个后台任务,跟-B一起使用
    -u USERNAME --user=USERNAME
      指定移动端的执行用户
    -U SUDO_USERNAME    --sudo-user=USERNAME
      sudo到SUDO_USERNAME,替代root用户
    -c CONNECTION --connection=CONNECTION
      指定建立连接的类型,一般有ssh ,localhost
FILES
    /etc/ansible/hosts                默认的host文件路径
    /usr/share/ansible                默认模块文件存放路径
    /etc/ansible/ansible.cfg       配置文件

File Transfer
ansible通过scp可以将文件传输到远程主机上
#ansible webservers -m copy -a "src=http://www.mamicode.com/etc/hosts dest=/tmp/hosts"
将本机的/etc/hosts文件拷贝到远程主机组webservers中所有主机的 /tmp/hosts下。
file模块可以改变文件的权限和所属用户组
#ansible webservers -m file -a "dest=/usr/local/src/test mode=600 owner=www group=www"
file模块还可以创建目录,类似mkdir -p
#ansible webservers -m file -a "dest=/a/b/c/d mode=755 owner=www group=www state=new"
同样也可以删除文件
#ansible webserver -m file -a "dest=/tmp/hosts state=absent"

 Managing Packages
ansible同样提供了yum模块来安装软件包
确保一个包已经安装,但是不进行update操作
#ansible webservers -m yum -a "name=acme state=installed"
查看已经安装了指定版本的软件包
#ansible webservers -m yum -a "name=acme-1.5 state=installed"
查看安装软件包是否为最新版本
#ansible webservers -m yum -a "name=acme state=latest"
确保一个软件包是没有安装的
#ansible webservers -m yum -a “name=acme state=removed"
ansible在platform上提供了模块用于包管理,如果你要安装的软件包在模块中不可用,你可以通过commond模块来安装包。

Users & Groups
‘user‘模块可以方便的创建或者操作一个用户帐号,同样的也可以删除一个用户
#ansible all -m user -a "name=test password=<abc>"
#ansible all -m user -a "name=test state=absent"

Managing Services
确定服务都是开启的
#ansible all -m service -a "name=httpd state=started"
重启服务
#ansibel all -m service -a "name=httpd state=restarted"
关闭服务

#ansible all -m service -a "name=httpd state=stoped"



翻译的man ansible

ansible常用命令