Ansible_00_初识Ansible

Ansible

Ansible:基于Python实现的配置管理和自动化工具

1)Ansible通过SSH连接到各个服务器,按照顺序并行执行任务;

2)Ansible使用YAML文件格式和Jinja2模板语言配置;

3)Ansible默认采用推送更新模式(可更改);

//Ansible支持ssh-agent程序


Ansible优化方式:

(1)开启SSH长连接;

1)配置~/.ssh/config文件实现SSH长连接(多路复用)

//启用长连接
ControlMaster auto

//存储套接字的文件路径
ControlPath /tmp/%r@%h:%p
//1)%r代表用户名
//2)%h代表服务器名
//3)%p代表连接端口号

//长连接的超时时间
ControlPerisist 10m

(2)开启pipelining

1)功能:使连接到SSH会话的管道直接执行Python脚本

2)需配置服务器的/etc/sudoers的“Defaults 用户名 !requiretty”;


默认task执行流程:

1.基于调用的模块生成Python脚本;

2.将生成的脚本传输至服务器;

3.服务器调用脚本;


(3)设置facts缓存

1)配置ansible.cfg文件实现facts缓存

gathering = smart

//到达过期时间后更新变量
fact_caching_timeout = 过期时间()

//缓存方式可为jsonfile、redis或memcached
//存在读取脏数据的风险(可手动刷新缓存)
fact_caching = 缓存方式

ansible.cfg

ansible.cfg文件:Ansible主配置文件

1)可在该文件设置inventory文件的默认值

2)Ansible按照以下顺序查找ansible.cfg文件:

ANSIBLE_CONFIG环境变量的值
./ansible.cfg
~/.ansible.cfg
/etc/ansible/ansible.cfg

//一般会在playbook的同级目录下创建,便于版本控制(第二种情况)


常用配置参数如下:

 1. inventory = inventory文件路径
 2. remote_user = SSH连接使用的用户名
 3. remote_port = SSH连接使用的端口
 4. private_key_file = 连接SSh的私钥
 5. host_key_checking = 是否检查主机密钥
 6. pipelining= 是否开启pipelining
 7. gathering= facts变量收集方式
 8. log_path=日志文件路径
 9. executable = 指定服务器的Shell全路径
 10. roles_path = ~/ansible_roles	//指定默认role路径
 11. nocows = 1       //关闭奶牛显示

stdout_callback=stdout回调插件

stdout回调插件说明
actionable只显示change和false
debug高可读的stderr和stdout
default显示默认输出
dense覆盖输出
jsonJSON格式输出
minimal最小限度输出
oneline仅显示在一行
selective仅显示标记task的输出
skippy跳过未选取hosts的输出

callback_whitelist=回调插件多个回调插件之间使用,分隔

回调插件说明
log_plays将playbook执行结果记录到/var/log/ansible/hosts日志文件
mail当task失败时发送邮件
profile_tasks报告每个task的执行时间

Ansible安装

安装

(1)启用EPEL仓库:yum install -y epel-release

(2)安装Ansible:yum install -y ansible

(3)验证(查看版本号):ansible --version

//Ansible不存在于默认Yum仓库中


管理

ansible命令:调用Ansible管理服务器

指令格式:ansible 选项

选项含义
-i指定inventory文件 (默认值:/etc/ansible/hosts)
-m指定使用模块 (默认值:command模块)
-a指定模块参数 (多个参数时需使用引号括起来)
-b通过sudo获取root身份执行
-e同时传入最高优先级变量 (传入变量文件,需在文件前添加“@”)

ansible-doc命令:查询Ansible模块相关信息

指令格式:ansible-doc 选项 模块名


ansible-playbook命令:执行playbook文件

指令格式:ansible-playbook 选项 YAML文件路径

选项含义
-l指定playbook只在特定群组上执行
–list-tasks列出playbook中所有的task
–flush-cache清除/刷新缓存
–ask-vault-pass输入加密密码
–vault-password-file指定加密密码的文件路径

1)若加密密码文件具有执行权限,则自动调用文件内容作为密码输入


ansible-vault命令:创建/编辑加密文件

指令格式:ansible-valut 选项 文件路径

选项含义
encrypt加密纯文本文件
decrypt解密加密文件
view打印加密文件
create创建加密文件
edit编辑加密文件
rekey修改加密文件的密码

//访问加密文件时需输入加密密码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值