娟斌心 发表于 2018-7-30 09:17:37

ansible配置笔记(一)

  下面的全部实验是在CentOS6.7X86_64上实验通过。
  1、配置epel源
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup  
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
  
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
  2、安装ansible
yum install ansible  3、配置SSH免密码登陆
ssh-keygen -t rsa                                 # 生成密钥对  
cat .ssh/id_rsa.pub >>.ssh/authorized_keys          # 将公钥导入本机
  
chmod 600.ssh/authorized_keys                     # 安全起见,设置权限为600
  
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.2.12    # 将该公钥导入其他主机
  4、定义主机组
  编辑/etc/ansible/hosts ,注释掉全部内容,改成自己的节点信息,下面的这些的是符合要求的写法:
  
172.16.20.72
  
172.16.20.73
  

  

  
172.16.9.33:63222
  
jumper ansible_ssh_port=64222 ansible_ssh_host=172.16.9.34
  5、简单测试
ansible webserver -m command -a 'uptime'  
ansible webserver -m setup         # 查看远程主机的基本信息
  
ansible webserver -m ping            # 测试远程主机是否在线
  

  
命令格式:ansible 主机组 -m command -a '命令'
  补充:
  网上大部分教程都是出于演示,简单的配置了SSH免密码的密钥登录法【上面笔记的第三步】,这样存在一个问题:假如ansible控制端出问题了,被***,则全部节点都存在风险。
  因此出于安全考虑,建议使用带密码的密钥登陆方式。配置如下:
mkdir /etc/ansible/ssh_keys  
ssh-keygen -t rsa -f /etc/ansible/ssh_keys/node2.key# 注意要给私钥设密码
  
chmod 700 /etc/ansible/ssh_keys/node2.key
  
将/etc/ansible/ssh_keys/node2.key.pub内容追加到远程主机的authorized_keys文件里面。
  然后,编辑/etc/ansible/hosts,修改如下:
  
192.168.2.12 ansible_ssh_private_key_file=/etc/ansible/ssh_keys/node2.key
  保存退出后,执行
  ansible node2 -m command -a 'ls /root'这时,系统会提示输入私钥的密码才能连接服务器

  经过我虚拟机测试,输入一次密码后,ansible再执行同样的命令就不用再输入密码了。但执行不同的命令还是需要再次输入私钥的密码才能执行命令的。
页: [1]
查看完整版本: ansible配置笔记(一)