建立一个ansible的脚本

ansible-playbook -C var.yml 检查该脚本语法
在另一个重复控制端主机会话中输入 ansible all -a ‘ls /data -l’ 验证是否能ll
查看被控制端的主机内存情况,ansible all -m setup | grep mem
把变量都放到一个文件中。
vim vars.yml

调用变量
vim testvar.yml
-
host: websrvs
remote_user: root
vars_files:- vars.yml
tasks:
- name: install package
yum: name={{ var1 }} 是否可以多个变量,用逗号隔开? - name: create file
file: name=/data/{{ var2 }}.log state=touch
ansible-playbook -C testvar.yml ansible基于ssh协议,效率有所慢,装代理,效率就快很多。
ansible websrvs -m shell -a ‘rpm -a httpd’
ansible websrvs -m shell -a ‘ls -l /data’ 直接用默认模块试试呢?

应用场景,复制配置文件到被控制端,且配置文件根据被控制端的性能做出修改
安装nginx,查看/etc/nginx/nginx.conf
worker_processes atuo; 工作进程数量,根据主机CPU是几核来定义
systemctl start nginx
ps -aux|grep nginx
lscpu
这时候cp模块就不能支持,templates(模板)就出来了

// 是整除,取整 %是取余,**指数运算 
ansible-doc -s template 查看帮助文档
只能用于playbook中
cp /etc/nginx/nginx.conf /templates/nginx.conf.j2
vim testtemp.yml





需求:workerer的进程是cpu的两倍




那么在不同主机上定义各自的端口呢?
在主机名单上可以定义



还可以在playbook中定义(yml脚本)

还可以在命令中

变量优先级 命令行>playbook脚本>主机清单

当版本的不同,配置文件也不同,这个时候呢?
就得需要用when语句
过滤操作系统

过滤版本





6上的配置文件拷贝到控制端上

本文介绍如何利用Ansible的template模块,根据主机的CPU核心数动态配置nginx的worker_processes,并探讨变量的使用、优先级以及根据不同操作系统版本应用不同配置的方法。

被折叠的 条评论
为什么被折叠?



