项目做了负载均衡, 查看日志很麻烦.通过ansible来控制多台服务器就方便多了.
环境配置
物理机
Windows 7 Ultimate, 64-bit 6.1.7601, Service Pack 1
虚拟机软件
VMware® Workstation 10.0.0 build-1295980
镜像
Centos6.5
网络适配器
NAT
安装
yum install epel-release -y
yum install ansible –y
添加主机
vim /etc/ansible/hosts
增加
[test]
192.168.1.200
账密登录
vim /etc/ansible/hosts
在对应ip后增加
ansible_ssh_user=账户名 ansible_ssh_port=ssh端口 ansible_ssh_pass=‘密码’
密码带有特殊字符 # 将登录失败 所以需要引号括住
例:
[test]
192.168.1.200 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass='123456'
免密登录
新生成公私钥
ssh-keygen -t rsa
上传到主机
ansible test -m authorized_key -a "user=root key='{{ lookup('file','/root/.ssh/id_rsa.pub') }}'" -k
测试连接
[root@localhost .ssh]# ansible test -m ping
192.168.1.200 | SUCCESS => {
"changed": false,
"ping": "pong"
}
已配置的私钥
全局配置
vim /etc/ansible/ansible.cfg
增加
remote_user = 账户名
private_key_file = 私钥文件路径
单独配置
vim /etc/ansible/hosts
在对应ip后增加 ansible_ssh_user = 账户名 ansible_ssh_port=ssh端口 ansible_ssh_private_key_file = 私钥文件地址
例:
[test]
192.168.1.200 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_private_key_file=/root/.ssh/id_rsa
Ansible命令格式
ansible <pattern_goes_here> -m <module_name> -a <arguments> <ansible_args>
例:ansible test -m shell -a ‘whoami’ -b