在ansible上操作
1、安装httpd服务
yum -y install httpd
2、编辑template文件
cp /etc/httpd/conf/httpd.conf /opt
mv httpd.conf httpd.conf.j2
vim /opt/httpd.conf.j2 #在文件中找到以下内容,并修改
...
Listen {{http_port}}
ServerName {{server_name}}
MaxClients {{access_num}}
3、编辑ansible配置文件
vim /etc/ansible/hosts #添加以下内容
...
[webserver]
192.168.28.20 httpd_port=192.168.28.20:80 access_num=200 server_name="www.mxx.com:80"
4、编辑yml文件
vim apache.yml
- hosts: webserver
remote_user: root
vars:
- names: httpd
tasks:
- name: install httpd
yum: name={{names}} state=latest
- name: install configure file
template: src=/opt/http.conf.j2 dest=/etc/httpd/conf/httpd.conf
notify:
- restart httpd
- name: start httpd server
service: name={{names}} enabled=true state=started
handlers:
- name: restart httpd
service: name={{names}} state=restarted
5、检查并执行yml文件
ansible-playbook apache.yml --syntax-check
ansible-playbook apache.yml
补充
可以去远程主机上查看
grep -i listen /etc/httpd/conf/httpd.conf
grep -i MaxClient /etc/httpd/conf/httpd.conf
grep -i servername /etc/httpd/conf/httpd.conf
在一个playbook中,我们一般会定义很多个task,如果我们只想执行其中某一个task或者多个task时,就可以使用tags标签功能了
例一:
1、编辑yml文件
vim hosts.yml
- hosts: webserver
remote_user: root
tasks:
- name: copy hosts files
copy: src=/etc/hosts dest=/opt/hosts
tags:
- only
- name: touch file
file: path=/opt/host01 state=touch
2、执行yml文件
ansible-playbook hosts.yml --tags="only"
在执行完命令后,可以去[webserver]主机上查看/opt目录下是否有hosts和hosts01文件,结果显示只有一个hosts文件,是因为tags: -only标签的执行,阻止了后边的内容的继续
在[webserver]主机的/opt中删除hosts01文件,再执行以下命令:
ansible-playbook hosts.yml
可以发现/opt目录下,有了hosts和hosts01文件
例二:
1、编辑yml文件
vim hosts.yml
- hosts: webserver
remote_user: root
tasks:
- name: copy hosts files
copy: src=/etc/hosts dest=/opt/hosts
tags:
- only
- name: touch file
file: path=/opt/host01 state=touch
tags:
- always
2、执行yml文件
ansible-playbook hosts.yml --tags="only"
角色(roles)是ansible自1.2版本开始引入的新特性,用于层次性,结构化地组织playbook。roles能够根据层次型结构自动装载变量文件、tasks以及handlers等。要使用roles只需要在playbook中使用include指令即可。简单的说,roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中、并可以便捷地include他们的一种机制。角色一般用于基于主机构建服务的场景中、但也可以是用于构建守护进程等场景中。
roles常用的模块
roles/
common/
files/
templates/
tasks/
handlers/
vars/
defaults/
meta/
web/
files/
templates/
tasks/
handlers/
vars/
defaults/
meta/
roles内各目录含义解释
mkdir /etc/ansible/roles/httpd/{files,templates,tasks,handlers,vars,defaults,meta} -p
mkdir /etc/ansible/roles/mysql/{files,templates,tasks,handlers,vars,defaults,meta} -p
mkdir /etc/ansible/roles/php/{files,templates,tasks,handlers,vars,defaults,meta} -p
touch /etc/ansible/roles/httpd/{defaults,vars,tasks,meta,handlers}/main.yml
touch /etc/ansible/roles/mysql/{defaults,vars,tasks,meta,handlers}/main.yml
touch /etc/ansible/roles/php/{defaults,vars,tasks,meta,handlers}/main.yml
写一个简单的tasks/main.yml
vim /etc/ansible/roles/httpd/tasks/main.yml
- name: install apache
yum: pkg={{ servername }} state=latest
定义变量:可以定义在全局变量中,也可以定义在roles角色变量中.
vim /etc/ansible/roles/httpd/vars/main.yml
servername: httpd
vim /etc/ansible/roles/mysql/tasks/main.yml
- name: install mysql
yum: pkg={{ mysqlname }} state=latest
vim /etc/ansible/roles/mysql/vars/main.yml
mysqlname: mariadb*
vim /etc/ansible/roles/php/tasks/main.yml
- name: install php
yum: pkg={{ phpname }} state=latest
vim /etc/ansible/roles/php/vars/main.yml
phpname: php
vim /etc/ansible/site.yml
- hosts: webserver
remote_user: root
roles:
- httpd
- mysql
- php
今天给大家分享四个在实际开发中,比较实用的SQL Server脚本函数,希望对大家能...
一. RabbitMQ 简介 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用...
Eval 计算一个表达式的值并返回结果。 语法:[result = ]eval_r(expression_r) e...
本文分享自华为云社区《 架构可视化支撑系统演进探索 》原文作者无名小溪。 随着...
Afrikaans:af Albanian:sq Basque:eu Belarusian:be Bulgarian:bg Catalan:ca Ch...
最近在和团队规划OKR目标的时候,我们讨论了很多问题,我先抛砖引玉,列举了一些...
一、导读 本文主要介绍Redhat7.6系统安装oracle 12201版本RAC的一些坑以及避坑方...
如果你想对使用手机,平板电脑和辅助技术的用户隐藏某些内容,而只对键盘用户显...
ajax传送json格式数据,关键是指定contentType,data要是json格式 如果是restful...
Linux 发行版的爱好者们又有全新的 Linux 可以体验了,日前一款名为 TeLOS 的 Li...