• Ansible入门使用


    最近在学习ansible,在此记录一下使用过程 --2017年12月21日 15:22:02
     
    一:server端yum安裝Ansible
    serverip:192.168.1.46
    # Redhat/CentOS Linux上,Ansible目前放在的epel源中
    sudo yum install epel-release -y
    sudo yum install ansible -y
    ansible --version #查看是否安装成功
    二:基本配置访问
     
    如需通过 192.168.1.46 管理 192.168.1.47 192.168.1.48 192.168.1.49
    在 192.168.1.46 生成一个密钥,公钥传到各自服务器
     # ssh-keygen -t rsa -f ./.ssh/id_rsa.pub -P ""
    传密钥到各自服务器
    # ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.47
    # ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.48
    # ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.49
    如果服务器是在同一连续IP段下,可使用
    # for i in {1..4}; do ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.78.1$i; done    
    配置ansible主机清单,使用yum安装的文件(Host Inventory)在 /etc/ansible/host中
    vi  /etc/ansible/hosts
     添加
    [myhost]
    192.168.1.47
    192.168.1.48
    192.168.1.49
    [zabbix-host]
    192.168.1.49
    192.168.1.50:9888  #如果主机端口号不是22,使用冒号分隔端口号
     
    安装完毕直接在46上面输入一条命令测试:
    # ansible all -m command -a "who"
     
    2.1 或者不传key,直接在 /etc/ansible/hosts 填入对应服务器账号密码即可(这种比较方便),如:
    [linux]
    192.168.1.70 ansible_ssh_user="root" ansible_ssh_pass="1qaz" ansible_su_pass="1qaz"
    [windows]
    192.168.1.44 ansible_ssh_user="Administrator" ansible_ssh_pass="1qaz" ansible_ssh_port=5985 ansible_connection="winrm" ansible_winrm_server_cert_validation=ignore

    至此,ansible已经安装成功并可以操作远程机器
     
    三:使用说明
    ansible相关程序文件:
    /usr/bin/ansible:命令行工具
      #命令格式:
    ansible <pattern_goes_here> -m <module_name> -a <arguments>
    #例如:
    ansible all -m copy -a 'src=/etc/my.cnf dest=/etc/'
    #几个重要参数的含义:
    -i    #指定inventory文件(主机定义文件)
    all   #表示在host文件中定义的所有的主机,可以替换成响应的组名或IP地址
    #针对于主机可以使用匹配规则(所有的匹配都基于配置文件中的主机)
      IP地址: ansible  192.168.239.132
      IP匹配: ansible  192.168.239.*
      IP匹配: ansible  *
      组匹配: ansible 组名:&hostname     <表示这个组跟其他组的一个主机>
      组匹配: ansible 组名:!hostname     <表示这个组但是出除去这个组的这个主机>
    #类似的匹配还很多,几乎能想到的匹配都能支持,具体参照http://docs.ansible.com/intro_patterns.html
    -m    #指定使用哪个模块,默认采用command模块
    -a    #指定模块的参数,每个模块都有相应的模块参数
      -u    #指定远端机器的用户
      
    /usr/bin/ansible-doc:帮助文档
        /usr/bin/ansible-doc -s yum  #查询yum相关帮助
    /usr/bin/ansible-playbook:剧本执行工具
    /etc/ansible/ansible.cfg:主配置文件
    /etc/ansible/hosts:管理的主机清单(Host Inventory)
    /etc/ansible/roles:角色存放处
     
    注意:<host-pattern>默认读取/etc/ansible/hosts,也可以指明自定义文件路径
    -iPATH, --inventory=PATH:指明使用的host inventory文件路径                                                                                                                                                                                                               

    四:详细使用要点说明
    • ansible-doc -l 查看总共有哪些模块
    • ansible-doc ping 显示某个模块的用法
    • ansible-doc -s ping 显示某个模块在playbooks中的代码片段
     
    安装问题:
    管理端ansible出现ssh-copy-id: command not found 错误
    yum -y install openssh-clients 
     
    参考:
  • 相关阅读:
    厦门,第二天
    react结合redux开发
    react native中使用ScrollableTabView
    react native中使用 react-native-easy-toast 和react-native-htmlview
    react native中使用native-echarts
    react native 使用TabNavigator编写APP底部导航
    react native 初识生命周期
    react native初识
    禁止浏览器返回登入页面
    vue中使用echarts来绘制世界地图和中国地图
  • 原文地址:https://www.cnblogs.com/newlooker/p/8080784.html
Copyright © 2020-2023  润新知