马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1、tags模块
可以给任务定义标签,可以根据标签来运行指定的任务
2、标签的范例
- always:设定了标签名为always,除非指定跳过这个标签,否则该任务将始终会运行,即使指定了标签还会运行
- never:始终不运行的任务,指定标签名never可以运行
- debug:用于调试
- setup:收集主机的信息
- 标签名也可以自定义:tags
复制代码- vim test1.yaml
- - hosts: 192.168.230.20
- gather_facts: false
- tasks:
- - name: debug-test1
- debug:
- msg: "cow"
- tags:
- - debug
-
- - name: always-test1
- debug:
- msg: "ALWAYS-RUN"
- tags:
- - always
-
- - name: setup-test1
- debug:
- msg: "SETUP-1"
- tags:
- - setup
-
- - name: never-test1
- debug:
- msg: "Never-run"
- tags:
- - never
-
- #不加标签运行,四个任务都会执行
- ansible-playbook test1.yaml
- #从setup标签开始运行,会运行setup和always的任务内容
- ansible-playbook test1.yaml --tags=setup
- #运行never标签,always的标签也会运行
- ansible-playbook test1.yaml --tags=never
- #跳过always不执行
- ansible-playbook test1.yaml --skip-tags=always
- #运行多个标签
- ansible-playbook test1.yaml --tags="debug","setup"
复制代码 3、自定义标签
- - hosts: 192.168.230.20
- remote_user: root
- tasks:
- - name: fuzhiwenjian
- copy: src=/etc/hosts dest=/opt/hosts
- tags:
- - zlm
- - name: touch file
- file: path=/opt/test1.txt state=touch
- tags:
- - hpc
- #运行
- ansible-playbook test2.yaml --tags=hpc
复制代码 4、模版
对应用的设置文件初始化
templates模版,Jinja组件,把编译过的模版文件传送给目的文件
- cd /etc/httpd/conf
- cp httpd.conf /opt/httpd.conf.j2
- cd /opt
- vim httpd.conf.j2
- 42行 Listen {{http_port}}
- 95行取消注释 SeverName {{server_name}}
- 119行 DocumentRoot "{{root_dir}}"
- vim /etc/ansible/hosts
- 192.168.230.20 http_port=192.168.230.20:80 server_name=www.xy.com:80 root_dir=/etc/httpd/htdocs
- vim test3.yaml
- - hosts: 192.168.230.20
- gather_facts: false
- remote_user: root
- vars:
- - pg: httpd
- - sv: httpd
- tasks:
- - name: install httpd
- yum: name={{pg}}
- - name: editon conf
- template: src=/opt/httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf
- notify:
- - restart httpd
- handlers:
- - name: restart httpd
- service: name={{sv}} state=restarted
- #运行
- ansible-playbook test3.yaml
- 作业:nginx通过传参的方式,端口改成8080,servername:www.xy.com
复制代码 5、roles模块
ansible为了层次化、结构化的构造playbook,使用roles(角色),通过层次化自动装载变量、任务和处理器等
roles把变量、任务和模块的文件单独放置在各个差别的文件中,通过roles一键编排
- cd /etc//ansible
- 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
- yum -y install tree
- tree
- roles:
- ├── httpd 角色名称 自定义
- │ │ ├── defaults 存放配置文件的目录,可以不写
- │ │ ├── files 存放copy模块或者script
- │ │ ├── handlers 存放处理器文件的目录
- │ │ ├── meta 保存角色元信息的文件
- │ │ ├── tasks 保存任务的文件
- │ │ ├── templates 保存模版的文件
- │ │ └── vars 保存变量的文件
- 就是把原来写在一个yaml的配置,分开到不同的目录,保存在一个名字的yaml里面,执行的时候调用不同目录的同一个yaml文件
- 文件名:main.yml
- cd httpd
- cd tasks
- vim main.yml
- - name: install httpd
- yum: name={{pkg}}
- - name: start apach
- service: name={{svc}} enabled=true state=started
-
- cd vars
- vim main.yaml
- pkg:httpd
- svc:httpd
- cd /etc/ansible
- vim site.yaml
- - hosts: 192.168.230.30
- remote_user: root
- roles:
- - httpd
-
- #运行
- ansible-playbook site.yaml
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |