ansible--ansible基础

配置文件

ansible的配置文件只有一个,即ansible.cfg,它可以存在于多个地方,ansible读取配置文件的顺序依次是当前命令执行目录->用户家目录下的.ansible.cfg->/etc/ansible.cfg,先找到哪个就使用哪个。

我这里使用docker作为测试工具,使用冻仁提供的镜像作为线上服务器使用,具体配置可以看链接内的介绍,这里贴出简单操作步骤

// 拉取镜像
docker pull chusiang/ansible-managed-node:centos-7
// 建立并执行容器
docker run --name server1 -d -P chusiang/ansible-managed-node:centos-7
// 查看容易绑定的端口,之后有用
docker ps

CONTAINER ID        IMAGE                                    COMMAND               CREATED             STATUS              PORTS                   NAMES
0a59028c1842        chusiang/ansible-managed-node:centos-7   "/usr/sbin/sshd -D"   2 hours ago         Up 2 hours          0.0.0.0:32773->22/tcp   server1

添加配置文件

首先建立一个新文件夹,然后创建ansible.cfg文件

mkdir ansible
cd ansible
vi ansible.cfg
// 输入内容
[defaults]
host_key_checking = False    // 首次连接是否需要检查key认证
remote_user = docker // 此处为镜像配置好的,其他地方一般不需要指定
inventory = hosts // 存储目标主机分组列表,此处写hosts会从当前目录的hosts文件开始查找

ansible inventory配置

inventory是管理主机信息的配置文件

定义主机和组

inventory可以用一下方式配置

  • 直接为ip地址
192.168.0.2
  • ip + 端口号
192.168.0.2:22
  • 分组,中括号内的内容标识一个分组的开始,气候的主机均属于该组成员,空行后的主机仍属于该组
// 此处例子为实际使用例子
vi hosts
// 输入
server1 ansible_ssh_host=127.0.0.1 ansible_ssh_port=32773 ansible_ssh_pass=docker

[local]
server1

// 如果有多台主机可以这么设置,[1:10]表示1~10之间的所有数字(字母同理)
server[1:10]

ansible正则

基本用法

ansible <pattern> -m <module_name> -a <arguments>

一些基本模式

All(全量)匹配

匹配所有主机,all*号功能相同,如下例

// 检测所有主机存活情况
ansible all -m ping
ansible "*" -m ping

逻辑或(or)匹配

如果希望同时对多台主机或多个组执行,相互之间用“:”分隔。

ansible "server1:server2" -m ping

逻辑非(!)匹配

主要针对多重条件的匹配规则

webservers:!phoenix

逻辑与(&)匹配

也主要针对多重条件的匹配规则

webservers:&staging

模糊匹配

使用*通配符表示一个或多个字符

server*

域切割

可以直接使用python语法的切割

正则表达式

使用"~"开始标识正则匹配

参考书目:《Ansible权威指南》

posted @ 2019-11-19 15:52  Leur  阅读(277)  评论(0编辑  收藏  举报