Ansible 基础知识

目录:

  一、ansible相关链接 

  二、ansible安装

  三、ansible目录结构

  四、ansible配置文件

  五、ansible主机清单

  六、ansible变量(非常重要)

  七、ansible执行命令

  八、ansible privilege_escalation(权限提升)

 

一、ansible相关链接

  Playbooks入门介绍

  Playbooks常用模块

  Playbooks练习示例

  Ad-Hoc命令练习

  命令行工具集合

  部署Web架构实战

  VMware模块使用教程    

 

二、ansible安装

  1. 针对各类操作系统在线安装方式

  2. 源码安装

 

三、ansible目录结构

  配置文件: /etc/ansible/

  执行文件: /usr/bin/

  lib库依赖: /usr/lib/pythonx/site-packages/ansible/

 

四、ansible配置文件

  配置文件路径  /etc/ansible/ansible.cfg

    [ssh_connection]  pipelining = True 管道加速功能,可提升文件传输效率

    [defaults]  log_path = /var/log/ansible.log  启用ansible日志

  ansible官网配置文件参数说明

 

五、ansible主机清单

  主机清单文件路径 /etc/ansible/hosts  

  语法格式:

     # 定义单个server
    192.168.20.100
    controller.openstack.com
    controller.openstack.com:222 #默认端口22

    # 定义group
    [openstack]
    controller.openstack.com
    compute[1:10].openstack.com

    # 定义主机变量
    controller.openstack.com http_port=8080

    # 定义group变量
    [openstack:vars]
    ntp_server=ntp.openstack.com

 

六、ansible变量(非常重要)

  变量通常从如下4个位置检索:

    1. Inventory配置文件hosts

    2. Playbook中定义的vars

    3. Roles中的vars目录下的文件

    4. Roles同级目录group_vars和hosts_vars目录下的文件

 

七、ansible执行命令

  注意:在执行ansible命令以前,需要将所有被管理主机配置好公私钥认证

  注意:ansible命令支持正则

  语法格式: ansible <host-pattern> [options]

  示例1: ping模块来验证连通性

    ansible server-group -m ping

   示例2:copy模块文件复制

    ansible server-group -m copy -a "src=/tmp/test.txt dest=/opt/"

  

八、ansible privilege_escalation(权限提升)

  当ansible使用的账户没有root权限时,当执行某些操作时需要root权限,因此需要配置privilege_escalation

  1. 在ansible server上修改ansible.cfg  

    [privilege_escalation]
    become=True  # 启用权限提升功能
    become_method=sudo  # 权限提升的方式
    become_user=root  # 权限提升的用户
    become_ask_pass=False  # 权限提升是否询问密码

  2. 在目标机器上修改sudoers,添加普通账户sudo无需密码

        user001 ALL=(ALL) NOPASSWD: ALL

 

posted @ 2017-04-01 14:26  Vincen_shen  阅读(564)  评论(0编辑  收藏  举报