ansible的安装使用
Posted blackonwhite
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ansible的安装使用相关的知识,希望对你有一定的参考价值。
ansible的安装和配置
一、安装
apt-get install ansible
二、配置密钥
ssh-keygen -t rsa
三、分发密钥
把连接的客户机ip填入/etc/ansible/hosts可以起多个组[group]
[all]
10.0.0.244
将公钥拷贝到管理主机中.ssh/authorized_keys文件中,实现免密码登录远程管理主机
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.200
四、ansible配置
##编辑配置文件
vim /etc/ansible/ansible.cfg
##1> 禁用每次执行ansbile命令检查ssh key host
host_key_checking = False
##2> 开启日志记录
log_path = /var/log/ansible.log
##3> ansible连接加速配置
[accelerate]
#accelerate_port = 5099
accelerate_port = 10000
#accelerate_timeout = 30
#accelerate_connect_timeout = 5.0
# If set to yes, accelerate_multi_key will allow multiple
# private keys to be uploaded to it, though each user must
# have access to the system via SSH to add a new key. The default
# is "no".
accelerate_multi_key = yes
五、测试
ansible all -m ping
ansible的使用
ansible testhost -m command -a 'w'
##这样就可以批量执行命令了。这里的testhost 为主机组名,-m后边是模块名字,-a后面是命令。当*然我们也可以直接写一个ip,针对某一台机器来执行命令。
##还有一个模块就是shell同样也可以实现
ansible testhost -m shell -a 'cat /etc/passwd|grep root'
##说明:command模块不支持shell的一些功能,所以需要用到shell模块。command能实现的功能,shell一定能实现。shell能实现的功能,command不一定能实现。
Ansible 拷贝文件或目录
ansible client.wyp.com -m copy -a "src=/etc/ansible dest=/tmp/ansibletest owner=root group=root mode=0755"
##注意:源目录会放到目标目录下面去,如果目标指定的目录不存在,它会自动创建。如果拷贝的是文件,dest指定的名字和源如果不同,并且它不是已经存在的目录,相当于拷贝过去后又重命名。但相反,如果desc是目标机器上已经存在的文件,则会覆盖该文件。
ansible testhost -m copy -a "src=/etc/passwd dest=/tmp/123/1.txt"
##这里的/tmp/123和源机器上的/etc/passwd是一致的,但如果目标机器上已经有/tmp/123目录,则会再/tmp/123目录下面建立passwd文件,如果没有/tmp/123目录,则报错。
##说明:ansibe copy模块有个特性,空目录是不会被同步过去的,只有目录下面有文件才会同步。比如说目录下有空目录,就不能同步这个空的子目录
Ansible远程执行脚本
##* 首先创建一个shell脚本
vim /tmp/test.sh //加入内容
#!/bin/bash
echo `date` > /tmp/ansible_test.txt
##* 然后把该脚本分发到各个机器上
ansible testhost -m copy -a "src=/tmp/test.sh dest=/tmp/test.sh mode=0755"
##* 最后是批量执行该shell脚本
ansible testhost -m shell -a "/tmp/test.sh"
##* shell模块,还支持远程执行命令并且带管道
ansible testhost -m shell -a "cat /etc/passwd|wc -l "
##说明:如果test.sh没有执行权限,可以用ansible testhost -m shell -a "/bin/sh /tmp/test.sh"来实现脚本的执行。
参考https://blog.csdn.net/xyang81/article/details/51568227
参考https://blog.51cto.com/llzdwyp/1761057
以上是关于ansible的安装使用的主要内容,如果未能解决你的问题,请参考以下文章
ansible自动化运维详解ansible的安装部署参数使用清单管理配置文件参数及用户级ansible操作环境构建
ansible自动化运维详解ansible的安装部署参数使用清单管理配置文件参数及用户级ansible操作环境构建