千金一刻莫空度,老大无成空自伤。这篇文章主要讲述ansible playbook用法相关的知识,希望能为你提供帮助。
目录
- playbook 基本使用
- palybook构成
- playbook之Hosts
- handlers和notify结合使用条件触发
- ansible tags的使用
- playbook中变量的使用
playbook作为ansible重要的企业实战解决方案。
playbook 基本使用
创建playbook文件
touch playbooktest.yml
vim playbooktest.yml
编写playbook
---
- hosts: websrvs
remote_user: roottask:
- name: hello
command: hostname
【ansible playbook用法】执行playbook
ansible-playbook playbooktest.yml
palybook构成 palybook采用YAML语言编写,有多个剧本组成,每个剧本由若干个task组成,每个task调用不同的模块,最终在目标机器上执行。ansible playbook相当于linux shell脚本。
yaml.org 查看更多的语法详情
playbook之Hosts 第一种编写方式
---
- hosts: websrvs
remote_user: roottasks:
- name: create new file
file: name=/data/newfile state=touch
- name: create a new user
user: name=test2 system=yes
- name: insall package
yum: name=httpd
- name: copy files
copy: src=https://www.songbingjia.com/var/www/html/index.html
第二种编写方式
---
- hosts: websrvs
remote_user: roottasks:
- name: create new file
file:
name: /data/newfile
state: touch- name: create a new user
user:
name: test2
system: yes- name: insall package
yum:
name:httpd- name: copy files
copy:
src:/var/www/html/index.html
只进行检查,不真正执行
ansible-playbook test.yml --check
ansible-playbook -C test.yml
handlers和notify结合使用条件触发
- handlers相当于一个触发器,配合notify使用。
---
- hosts: websrvs
remote_user: roottasks:
- name: install httpd
yum: name=httpd
tags: installed- name: config file
copy: src=https://www.songbingjia.com/android/files/httpd.conf dest=/etc/httpd/conf/ backup=yes
notify:
- restart service
- check the nginx process- name: restart httpd
service: name=httpd state=start enableed=yes
tags: rshttpdhandlers:
- name: restart service
service: name=httpd state=restarted
- name: check the nginx process
shell: killall -0 nginix>
/tmp/nginx.log
ansible tags的使用 添加tags后,可以通过tags调用,通过指定标签执行特定task.
ansible-playbook -t installed,rshttpd httpd.yml
playbook中变量的使用 ansible变量只能数字字母下划线组成,且只能字母开头,包括系统变量和自定义变量。
- 查询某个关键字的系统变量。
ansible websrvs -m setup -a \'filter=ansible_fqdn\'
- 引用外部的变量
---
- hosts: websrvs
remote_user: roottasks:
- name: create new file
file:
name: /data/newfile
state: touch- name: create a new user
user:
name: test2
system: yes- name: insall package
yum:
name: {{ pkname }}
执行playbook并通过-e传入变量
ansbible-playbook app.yml -e \'pkname=httpd pkname2=vbss\'
- 在playbook中定义变量
---
- hosts: websrvs
remote_user: root
vars:
- pkname1: httpd
- pkname2: vbstasks:
- name: create new file
file:
name: /data/newfile
state: touch- name: insall package
yum:
name: {{ pkname }}
执行playbook自动引用内部定义的变量
ansbible-playbook app.yml
- 在ansible的hosts文件中定义变量,
/etc/ansible/hosts
[webserver]
192.168.1.2 http_port=81
192.168.1.4 http_port=82
playbook引用hosts中的变量
---
- hosts: websrvs
remote_user: root
vars:
- pkname1: httpd
- pkname2: vbstasks:
- name: set hostname
hostname: name=wwww.{{http_port}}.baidu.com
推荐阅读
- ansible下载文件的多种方式
- Linux之系统性能优化
- Linux之程序管理
- ansible 快速学习视频(阿里云大学)
- ansible变量类型
- linux之chroot命令
- optee3.14.0 qemu_v8的环境搭建篇(ubuntu20.10)--终极篇
- 更改插件内部wordpress函数的输出并将其用于wordpress主题
- 更改Storefront主题标题中的项目顺序