IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    CentOS/Ubunt安装配置集群管理工具Ansible

    bear发表于 2016-08-03 09:40:18
    love 0

    CentOS/Ubunt安装配置集群管理工具Ansible的过程, 记录一下.

    1, 安装

    yum install ansible    #CentOS6请先安装epel
    
    #Ubuntu的安装(从Ubuntu官方的源里安装的大概是1.4的版本,非常古老,这里我们启用其它的源)
    sudo apt-get install software-properties-common
    sudo apt-add-repository ppa:ansible/ansible
    sudo apt-get update
    sudo apt-get install ansible
    

    2, 配置

    vim ansible.cfg    #主配置文件, 修改如下选项
    host_key_checking = False
    #ask_sudo_pass = True      //每次在本机执行ansible命令是否询问ssh密码
    #ask_pass      = True      //每次在本机执行ansible命令时是否询问sudo密码
    log_path = /var/log/ansible.log
    executable = /bin/bash
    remote_tmp     = /tmp/.ansible/tmp
    
    #如果远程调用的命令需要sudo命令提权,需要开启如下几项
    #以下几项在ansible1.9版本以后才有,请先运行ansible --version确定下版本
    [privilege_escalation]
    become=True
    become_method=sudo
    become_user=root
    become_ask_pass=False
    


    需要注意的是,ansible的配置文件并非只有这一个,ansible执行的时候会按照以下顺序查找配置项
    ANSIBLE_CONFIG(环境变量)
    ansible.cfg(位于当前目录中)
    ~/.ansible.cfg(位于家目录中)
    /etc/ansible/ansible.cfg

    3, 写入主机列表

    vim /etc/ansible/hosts
    [dev]
    192.168.32.39 ansible_ssh_user=USERNAME ansible_ssh_pass=PASSWORD ansible_sudo_pass=PASSWORD
    192.168.32.41 ansible_ssh_user=USERNAME ansible_ssh_pass=PASSWORD ansible_sudo_pass=PASSWORD
    192.168.32.42 ansible_ssh_user=USERNAME ansible_ssh_pass=PASSWORD ansible_sudo_pass=PASSWORD
    192.168.32.44 ansible_ssh_user=USERNAME ansible_ssh_pass=PASSWORD ansible_sudo_pass=PASSWORD
    192.168.32.144 ansible_ssh_user=USERNAME ansible_ssh_pass=PASSWORD ansible_sudo_pass=PASSWORD
    
    [conv]
    192.168.34.20 ansible_ssh_user=USERNAME ansible_ssh_pass=PASSWORD ansible_sudo_pass=PASSWORD
    192.168.34.22 ansible_ssh_user=USERNAME ansible_ssh_pass=PASSWORD ansible_sudo_pass=PASSWORD
    192.168.34.23 ansible_ssh_user=USERNAME ansible_ssh_pass=PASSWORD ansible_sudo_pass=PASSWORD
    192.168.34.24 ansible_ssh_user=USERNAME ansible_ssh_pass=PASSWORD ansible_sudo_pass=PASSWORD
    192.168.34.25 ansible_ssh_user=USERNAME ansible_ssh_pass=PASSWORD ansible_sudo_pass=PASSWORD
    192.168.34.26 ansible_ssh_user=USERNAME ansible_ssh_pass=PASSWORD ansible_sudo_pass=PASSWORD
    192.168.34.27 ansible_ssh_user=USERNAME ansible_ssh_pass=PASSWORD ansible_sudo_pass=PASSWORD
    192.168.34.34 ansible_ssh_user=USERNAME ansible_ssh_pass=PASSWORD ansible_sudo_pass=PASSWORD
    192.168.34.35 ansible_ssh_user=USERNAME ansible_ssh_pass=PASSWORD ansible_sudo_pass=PASSWORD
    192.168.34.36 ansible_ssh_user=USERNAME ansible_ssh_pass=PASSWORD ansible_sudo_pass=PASSWORD
    192.168.34.37 ansible_ssh_user=USERNAME ansible_ssh_pass=PASSWORD ansible_sudo_pass=PASSWORD
    192.168.34.38 ansible_ssh_user=USERNAME ansible_ssh_pass=PASSWORD ansible_sudo_pass=PASSWORD
    192.168.34.124 ansible_ssh_user=USERNAME ansible_ssh_pass=PASSWORD ansible_sudo_pass=PASSWORD
    

    4, 测试

    然后可以调用一下ansible命令测试一下
    ansible dev -a 'uptime'
    ansible dev -a 'sudo uptime'
    

    可能遇到的错误:
    Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host’s fingerprint to your known_hosts file to manage this host.

    解决办法:
    修改ansible.cfg, 找到host_key_checking项, 改成False, 或者在ssh_args配置项后面添加”-o StrictHostKeyChecking=no”.

    可能遇到的错误:
    failed to resolve remote temporary directory from ansible-tmp-1470207846.63-257290492417275: `( umask 77 && mkdir -p “` echo $HOME/.ansible/tmp/ansible-tmp-XXXXXXXXX `” )` returned empty string

    解决办法:
    使用本机的ssh登陆到第一个出错的server上再退出就好了.

    参考文档:
    http://www.tuicool.com/articles/AZVJ3qQ
    http://www.361way.com/ansible-cfg/4401.html
    http://www.361way.com/ansible-su/4882.html



沪ICP备19023445号-2号
友情链接