Python+Django+Ansible自动化运维
自动化执行任务的意义
1.提升效率,减少成本
2.提高准确度
ansible的安装
python ./setup.py install 方式具体步骤
github下载ansible对应的包
tar解压下载下来的包
python ./setup.py install
ansible --version 查看是否成功安装(注意python,ansible,java这些命令需要到指定的目录下执行,或者配置环境变量)
ansible的配置文件
修改默认配置文件路径 export ANSIBLE_CONFIG=/etc/ansible/ansible.cfg
ansible配置文件中的配置项含义手记: https://www.imooc.com/article/22513
hosts主机清单配置方式
1.用户名+密码
(1)需要安装ssh_pass包 yum install sshpass
示例:(如果端口号不写,会从ansible.cfg中读取默认配置项remote_port)
2.用户名+秘钥
(1)生成秘钥 ssh-keygen
(2)把公钥拷贝到要连接的目标机器上 ssh-copy-id 【目标服务器host】
(3)在hosts配置文件中配置秘钥地址或者在ansible.cfg中进行全局配置
示例:
测试:
执行ansible all -a 'ls /tmp'
ad-hoc模式概念和命令执行
什么是ad-hoc:
简言之,就是临时命令
ansible有两种模式,分别是ad-hoc和playbook
命令使用:
手记: https://www.imooc.com/article/22521
ad-hoc常用模块
ad-hoc场景演练
查看ansible支持的模块 ansible-doc -l
查看目标机器版本信息(过滤器) ansible group1 -m setup -a "filter=ansible_distribution*"
playbook
1.组成:
2.优势:
3.基本使用:
参数手记url:https://www.imooc.com/article/22729
4.yaml语法
5.playbook中变量的4种定义方式
6.playbook条件语句
7.playbook循环语句
手记:https://www.imooc.com/article/22753
标准循环:
遍历字典
遍历目录结构
8.playbook条件循环结合使用
9.异常处理
(1)忽略错误
(2)自定义错误
(3)忽略信息改变
10.tags标签处理
11.include的用法
12.roles剧本目录结构
手记: https://www.imooc.com/article/22924
13.场景演练 NGINX工程方式的编译安装
production文件内容:
webserver.yml文件内容: