自动化运维工具之Ansible- YAML初识

网友投稿 1034 2022-10-03

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

自动化运维工具之Ansible- YAML初识

1. Ansible YAML 介绍

YAML:一个可读性高的用来表达资料序列的格式。YAML的特点:

可读性好和脚本语言交互性好使用实现语言的数据类型有一个一致的信息模型易于实现可以基于流来处理表达能力强,扩展性好

YAML的格式:

序列,列表(用-来打头),字典(用冒号分割)

yaml的组件构成

inventory:具备应用到哪些主机,哪些组上。modules:调用的模块有哪些ad hoc commands:调用的命令是什么playbooks

tasks:任务,调用模块完成的某任务

variables:变量

templates:模板

handlers:处理器,某条件满足时,触发执行的操作。发生改变时执行的操作。

roles:角色

tags: 可以在一个playboos中指定仅运行某个task。有一个特殊的tags  always。

2. 实例:

第一个剧本:对ihdmgr组进行存储查询,启动nginx,校正系统时间,对webservices组开启防火墙。

cat getBaseInfo.yml- hosts: ihdmgr vars: http_port: 80 max_clients: 200 remote_user: hdm tasks: - name: get memo info command: free -g || bin/true - name: get storage info    command: /bin/df -h    ignore_errors: True  - name: start nginx   service: name=nginx state=started    sudo: yes  - name: set system date shell: date -s 17:10:23    - hosts: webservers remote_user: root tasks: - name: set iptables start service: name=iptables state=started

第二个实例:在ihdmgr主机组上批量安装httpd服务

# 在主机上查看上面是否安装httpd服务rpm -aq httpd ansible ihdmgr -m yum -a 'name=httpd state=installed' -u root # 有则显示已安装,之前未安装则重新安装 # 为了试验,如有安装可先停用,并卸载ansible ihdmgr -m service -a 'name=httpd state=stopped' -u rootansible ihdmgr -m yum -a 'name=httpd state=removed' -u root#################创建剧本installhttpd###################- hosts: ihdmgr vars: http_port: 80 max_clients: 200 remote_user: root sudo: yes tasks: - name: ensure apache is at the latest version yum: name=httpd state=latest - name: write the apache config file template: src=/etc/ansible/template/httpd.conf dest=/etc/httpd/conf/httpd.conf notify: - restart apache - name: ensure apache is running service: name=httpd state=started handlers: - name: restart apache service: name=httpd state=restarted ############# # 运行剧本  # 剧本执行具有幂等性,多次执行并不会重新安装,或者多次重启。  ansible-playbook installhttpd.yml

附记:httpd启动故障处理

# 故障现象 不能加载libaprutil-1.so.0 文件while loading shared libraries: libaprutil-1.so.0:cannot open shared object file# 处理手段# 确认系统内该文件是否存在find -name libaprutil-1.so.0# 查看共享库文件more etc/ld.so.confinclude ld.so.conf.d/*.conf# 加载上面步骤找到的库文件目录cd /etc/ld.so.conf.d/vi httpd-apr.conf/opt/trm/usr/local/apache2/lib/# 更新共享配置库ldconfig -v

第三个实例:在web主机组上创建nginx 组 和 用户。在db组上拷贝文件。

执行剧本

ansible-playbook nginx.yml

上一篇:企业运维监控平台架构设计与实现(ganglia篇)
下一篇:Tidb4.0中Tiup 常用运维操作命令干货
相关文章

 发表评论

暂时没有评论,来抢沙发吧~