Ansible篇-Ansible使用说明「安装+术语+配置目录+配置文件等」

1 引言

Ansible中文官网:https://ansible-tran.readthedocs.io/en/latest/docs/intro_installation.html
上面详细阐述了ansible的相关内容,是我的主要参考。

2 安装

2.1 安装之前

  1. Ansible默认通过 SSH 协议管理机器
  2. 若你希望使用Ansible的最新版本,并且你使用的操作系统是 Red Hat Enterprise Linux ™, CentOS, Fedora, Debian, Ubuntu,我们建议使用系统的软件包管理器
  3. 目前,只要管理机器上安装了 Python 2.6 或 Python 2.7 (windows系统不可以做控制主机),都可以运行Ansible.
  4. 管理机的系统可以是 Red Hat, Debian, CentOS, OS X, BSD的各种版本,等等.
  5. 被管理的机器也需要安装 Python 2.4 或以上的版本.如果版本低于 Python 2.5 ,还需要额外配置安装支持,详见官网【installation】

2.2 安装方式

2.2.1 源码安装

$ git clone git://github.com/ansible/ansible.git --recursive
$ cd ./ansible
$ source ./hacking/env-setup
#如果没有安装pip, 请先安装对应于你的Python版本的pip:
$ sudo easy_install pip
$ sudo pip install paramiko PyYAML Jinja2 httplib2 six
#注意,当更新ansible版本时,不只要更新git的源码树,也要更新git中指向Ansible自身模块的 “submodules” (不是同一种模块)
$ git pull --rebase
$ git submodule update --init --recursive
#一旦运行env-setup脚本,就意味着Ansible从源码中运行起来了.默认的inventory文件是 /etc/ansible/hosts.inventory文件也可以另行指定 (详见 Inventory文件) :
$ echo "127.0.0.1" > ~/ansible_hosts
$ export ANSIBLE_HOSTS=~/ansible_hosts
#测试一条ping命令:
$ ansible all -m ping --ask-pass
#也可以使用命令 “sudo make install”

2.2.2 yum安装

# install the epel-release RPM if needed on CentOS, RHEL, or Scientific Linux
$ yum install epel-release -y
$ sudo yum install ansible

2.2.3 配置ssh和hosts

  • 配置免密登录
$ sudo ssh-keygen
$ sudo ssh-copy-id -i ~/.ssh/id_rsq.pub root@到被管理的主机ip
  • 将被管理的主机添加到hosts中,或者在/etc/ansible/inventory/下面创建文件来添加被管理的主机。如何使用inventory后面再说,一般也推荐使用inventory管理主机
vim /etc/ansible/hosts
192.168.0.1
192.168.0.2
192.168.0.3

3 配置文件目录

  • 目录结构示意图:

  • 在使用ansible时,通常需要在/etc/ansible/下这样设计配置文件目录:

1)主yml文件就放置在/etc/ansible下,比如install_zabbix_agent.yml
2)/etc/ansible/roles/目录用来存放“角色”的配置文件,我们把具有特定功能的一组配置文件看作是一个“角色”。比如,安装zabbix agent这个功能可以作为一个角色,其配置文件均放置在roles/install_zabbix_agent/下,而上面的主yml文件install_zabbix_agent.yml会调用这个角色。这个不理解的话后面会有应用场景的例子。
3)/etc/ansible/vars/目录用来存储全局变量文件;

  • 那么在/etc/ansible/roles/install_zabbix_agent/这个角色的目录下通常会设置以下几个目录

1)tasks:用于存放实现功能的main.yml脚本
2)templates:用于存放main.yml脚本将会用到的配置文件模版,配置文件模版放置在这里的好处就是可以直接使用template模块对文件进行copy操作而无需写绝对路径。
3)defaults:用于存放默认的处理流程,如统一重命名主机的hostname
4)files:用于存储需要用到的文件
5)vars:用于存储角色的变量文件
6)handlers:用于存储触发yml脚本

4 ansible命令执行方式

有两种:

  1. ad-hoc:主要用于临时命令的执行
  2. ansible-playbook:是ad-hoc命令的集合,通过一定的规划编排在一起,实现一个完整的功能。这也是我的常用方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鬼刺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值