首页 > 其他分享 >A-PlayBook示例

A-PlayBook示例

时间:2023-02-23 13:00:49浏览次数:32  
标签:httpd name 示例 nginx state user playbook PlayBook

运行playbook的方式

ansible-playbook <filename.yml> ... [options]

常见选项

--check -C 只检测可能会发生的改变,但不真正执行操作
--list-hosts 列出运行任务的主机
--list-tags 列出tag
--list-tasks 列出task
--limit 主机列表 只针对主机列表中的主机执行
-v -vv -vvv 显示过程

ansible-playbook file.yml --check 只检测
ansible-playbook file.yml
ansible-playbook file.yml --limit websrvs

示例-安装httpd

---
- hosts: web
remote_user: root
tasks:
- name: "安装Apache"
yum: name=httpd
- name: "复制配置文件"
copy: src=/tmp/httpd.conf dest=/etc/httpd/conf/
- name: "复制配置文件"
copy: src=/tmp/vhosts.conf dest=/etc/httpd/conf.cd/
- name: "启动Apache,并设置开机启动"
service: name=httpd state=started enabled=yes

示例-设置用户sysuser.yml

---
- hosts: all
remote_user: root
tasks:
- name: create mysql user
user: name=mysql system=yes uid=36
- name: create a group
group: name=httpd system=yes

Handlers使用

- hosts: websrvs
remote_user: root
tasks:
- name: add group nginx
tags: user
user: name=nginx state=present
- name: add user nginx
user: name=nginx state=present group=nginx
- name: Install Nginx
yum: name=nginx state=present
- name: config
copy: src=/root/config.txt dest=/etc/nginx/nginx.conf
notify:
- Restart Nginx
- Check Nginx Process
handlers:
- name: Restart Nginx
service: name=nginx state=restarted enabled=yes
- name: Check Nginx process
shell: killall -0 nginx > /tmp/nginx.log

tags使用

- hosts: websrvs
remote_user: root
tasks:
- name: Install httpd
yum: name=httpd state=present
- name: Install configure file
copy: src=files/httpd.conf dest=/etc/httpd/conf/
tags: conf
- name: start httpd service
tags: service
service: name=httpd state=started enabled=yes

示例:使用setup变量

- hosts: web
remote_user: root
tasks:
- name: create log file
file: name=/var/log/ {{ ansible_fqdn }} state=touch
ansible-playbook var.yml

示例-用户添加

- hosts: websrvs
remote_user: root
vars:
- username: user1
- groupname: group1
tasks:
- name: create group
group: name={{ groupname }} state=present
- name: create user
user: name={{ username }} state=present
ansible-playbook user.yml
ansible-playbook -e "username=user2 groupname=group2” var2.yml

组变量是指赋予给指定组内所有主机上的在playbook中可用的变量

[websrvs:vars]
ntp_server=ntp.magedu.com
nfs_server=nfs.magedu.com

普通变量

[websrvs]
192.168.99.101 http_port=8080 hname=www1
192.168.99.102 http_port=80 hname=www2

公共(组)变量

[websvrs:vars]
http_port=808
mark=“_”
[websrvs]
192.168.99.101 http_port=8080 hname=www1
192.168.99.102 http_port=80 hname=www2
ansible websvrs –m hostname –a ‘name={{ hname }}{{ mark }}{{ http_port }}’

使用变量文件

vim vars.yml
var1: httpd
var2: nginx
vim var.yml
- hosts: web
remote_user: root
vars_files:
- vars.yml
tasks:
- name: create httpd log
file: name=/app/{{ var1 }}.log state=touch
- name: create nginx log
file: name=/app/{{ var2 }}.log state=touch

标签:httpd,name,示例,nginx,state,user,playbook,PlayBook
From: https://blog.51cto.com/u_13688209/6081117

相关文章

  • A-Ansible示例
    示例-pingansible-kall-mpingansible-kall-mcommand-a"ping-c2www.baidu.com"示例-dateansible-k-i/etc/ansible/hostsall-mcommand-a"date"示例-df-h......
  • A-Ansible-Playbook参数
    Playbook核心元素Hosts#执行的远程主机列表Tasks#任务集Variables#内置变量或自定义变量在playbook中调用Templates#模板,可替换模板文件中的变量并实现一些简单逻辑......
  • C#websocket及时通信协议的实现方法示例
    传统“长轮询”实现Web端即时通讯的问题WebSocket出现之前,Web端为了实现即时通讯,所用的技术都是Ajax轮询(polling)。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发......
  • 前端分页代码示例
    teacher.jsimportrequestfrom'@/utils/request'exportdefault{//1讲师列表(条件查询)getTeacherList(query){returnrequest({ur......
  • hadoop - hadoop2.6 伪分布式 - eclipse 中 配置 和 示例 wordcount
    1.配置eclipse   1.1下载linux版的eclipse ​​百度云-大数据资料专辑​​  1.2解压   可以手动提取,也可以命令提取:yuan@LABELNET:~/JAVA$sudotar-zx......
  • ansible playbook role及调试
    目录ansibleplaybookrole及调试role简介创建role步骤role中变量设置使用default定义变量使用命令行的变量在palybbok.yml文件直接定义变量在var中定义自己的变量pre_tas......
  • ansible playbook include
    目录ansibleplaybookincludeincludeinclude_tasksinclude_asks基本使用include_tasks使用tagsimport_tasks使用include_tasks和import_task区别一include_tasks和import_......
  • expect使用示例
    #!/bin/bashPASS='password'foripin$(catip.txt);doexpect-c"settimeout5;spawnscp-rpip.txtroot@$ip:/tmpexpect{......
  • 基于图数据库 NebulaGraph 实现的欺诈检测方案及代码示例
    本文是一个基于NebulaGraph图算法、图数据库、机器学习、GNN的FraudDetection方法综述。在阅读本文了解欺诈检测的基本实现方法之余,也可以在我给大家准备的Playgrou......
  • 附录E示例-UT_SpatialStructure_4
    示例概述UT_空间结构_4意图该UT为水平交叉故事线建立了空间结构。其目的是作为本故事情节即将进行的单元测试的框架。 它基于故事线SLLC-DD(IFC铁路阶段2)和bSFi_IR_SL......