云计算架构学习之Ansible-playbook实战、Ansible-流程控制、Ansible-字典循环-roles角色

一、Ansible-playbook实战

1.Ansible-playbook安装软件

```bash

#编写yml

root@ansible ansible\]# cat wget.yml - hosts: backup tasks: - name: Install wget yum: name: wget state: present #检查playbook的语法 \[root@ansible ansible\]# ansible-playbook --syntax-check wget.yml playbook: wget.yml #执行playbook \[root@ansible ansible\]# ansible-playbook wget.yml ### ![](https://i-blog.csdnimg.cn/direct/343288fb2f4f45299a06481226ad3c7a.png) ### ![](https://i-blog.csdnimg.cn/direct/d07e69c6a2d142af8275ac574aae9a97.png) ### 2.Playbook重构backup服务 \`\`\`bash 1.定义主机清单 \[root@ansible ansible\]# cat /etc/ansible/hosts nfs ansible_ssh_host=10.0.0.31 backup ansible_ssh_host=10.0.0.41 2.写playbook重构 \[root@ansible ansible\]# cat backup.yml - hosts: backup tasks: - name: Install Rsync Server yum: name: rsync state: present - name: Configure Rsync Server copy: src: rsyncd.conf dest: /etc/rsyncd.conf - name: Create www Group group: name: www gid: 666 - name: Create User www user: name: www uid: 666 group: www shell: /sbin/nologin create_home: false - name: Configure passwd file copy: content: rsync_backup:123456 dest: /etc/rsync.passwd mode: 0600 - name: Create Dir /backup file: path: /backup state: directory owner: www group: www - name: Start Rsync Server systemd: name: rsyncd state: started enabled: yes ![](https://i-blog.csdnimg.cn/direct/be850284aae0449eafbc937130a45309.png) ### 3.playbook重构nfs服务 \`\`\`bash 1.定义主机清单 \[root@ansible ansible\]# cat /etc/ansible/hosts nfs ansible_ssh_host=10.0.0.31 backup ansible_ssh_host=10.0.0.41 2.打通免秘钥 \[root@ansible \~\]# ssh-copy-id 10.0.0.31 3.写playbook \[root@ansible ansible\]# cat nfs.yml - hosts: nfs tasks: - name: Install NFS Server yum: name: nfs-utils state: present - name: Configure nfs Server copy: src: exports dest: /etc/ - name: Create www Group group: name: www gid: 666 - name: Create User www user: name: www uid: 666 group: www shell: /sbin/nologin create_home: false - name: Create /data/wp file: path: /data/wp state: directory owner: www group: www - name: Start NFS Server systemd: name: nfs state: started enabled: yes 客户端挂载: \[root@ansible ansible\]# cat web.yml - hosts: web01 tasks: - name: Install nfs-utils yum: name: nfs-utils state: present - name: mount nfs /data/wp--\>wordpress mount: src: 172.16.1.31:/data/wp path: /code/wordpress/wp-content/uploads/ state: mounted fstype: nfs \`\`\` ![](https://i-blog.csdnimg.cn/direct/6ea131ffec804b44a2d2205e7b2f7a18.png) ### ![](https://i-blog.csdnimg.cn/direct/571b9613537340cb8eb90c72cc193004.png) ### 4.Playbook重构nginx-php ![](https://i-blog.csdnimg.cn/direct/003288e2a7754161bb5ddda215db1fa2.png) \`\`\`bash 1.定义主机清单 \[root@ansible \~\]# cat /etc/ansible/hosts nfs ansible_ssh_host=10.0.0.31 backup ansible_ssh_host=10.0.0.41 web01 ansible_ssh_host=10.0.0.7 web02 ansible_ssh_host=10.0.0.8 2.免秘钥 \[root@ansible \~\]# ssh-copy-id 10.0.0.8 3.playbook \[root@ansible ansible\]# cat nginx.yml - hosts: web02 tasks: - name: Nginx Repo yum_repository: name: nginx description: Nginx YUM repo baseurl: http://nginx.org/packages/centos/7/$basearch/ gpgcheck: no enabled: yes - name: Install Nginx Server yum: name: nginx state: present - name: Configure Nginx Server copy: src: nginx.conf dest: /etc/nginx/ - name: create group www group: name: www gid: 666 - name: Create www user user: name: www uid: 666 group: www shell: /sbin/nologin create_home: false - name: Start Nginx Server systemd: name: nginx state: started enabled: yes ![](https://i-blog.csdnimg.cn/direct/62ccf560716140df9f37bdc5212f9002.png) ### 5.Playbook重构mariadb \[root@ansible ansible\]# cat php.yml - hosts: web02 tasks: - name: Install PHP Server yum: name: php,php-bcmath,php-cli,php-common,php-devel,php-embedded,php-fpm,php-gd,php-intl,php-mbstring,php-mysqlnd,php-opcache,php-pdo,php-process,php-xml,php-json state: present - name: Configure PHP Server copy: src: www.conf dest: /etc/php-fpm.d/ - name: Start PHP Server systemd: name: php-fpm state: started enabled: yes ![](https://i-blog.csdnimg.cn/direct/30bd0d3a7a3540ceb60f521efe12f3f5.png) ### 6.整合playbook文件 \[root@ansible ansible\]# cat mysql.yml - hosts: db01 tasks: - name: Install mariadb Server yum: name: mariadb-server,python3-mysqlclient state: present - name: Start mariadb Server systemd: name: mariadb state: started enabled: yes - name: copy all.sql to 51 copy: src: all.sql dest: /root/ - name: Configure Mmriadb Server mysql_db: login_user: root login_host: localhost login_port: 3306 name: all target: /root/all.sql state: import - name: Restart mariadb systemd: name: mariadb state: restarted \`\`\` ##### 07.部署wordpress \`\`\`bash \[root@ansible ansible\]# cat wp.yml - hosts: web02 tasks: - name: Delete Default default.conf file: path: /etc/nginx/conf.d/default.conf state: absent - name: Copy wp.conf copy: src: wp.conf dest: /etc/nginx/conf.d/ - name: unarchive wp.tar.gz unarchive: src: wp.tar.gz dest: / creates: /code/wordpress - name: Restart Nginx Server systemd: name: nginx state: restarted \`\`\` ![](https://i-blog.csdnimg.cn/direct/8d13ff0dc83e4ca0a454b66b88442e8e.png) ![](https://i-blog.csdnimg.cn/direct/5a88133027ba476ebe7913da42cdd916.png) ![](https://i-blog.csdnimg.cn/direct/08770a4239fd4d1aa2298c2236d9106e.png) ![](https://i-blog.csdnimg.cn/direct/f17c33d92b684eaf8b1fb656035c77af.png) ## 二、Ansible-流程控制 ### 1.vars变量定义方法 ### 2.vars变量定义方法 ### 3.变量注册 ### 4.when判断语法格式 ### 5.when判断案例 ### 6.handlers模块 ### 7.nfs服务重构 ## 三、Ansible-字典循环-roles角色 ### 1.字典循环 ### 2.tasks任务整合到一个文件 ### 3.jinja2的循环和判断语法 ### 4.rsync使用jinja2模版重构 ### 5.Roles角色重新编排rsync ### 6.Roele角色重新编排nfs

相关推荐
报错小能手13 小时前
线程池学习(七)实现定时(调度)线程池
学习
Akamai中国13 小时前
基准测试:Akamai云上的NVIDIA RTX Pro 6000 Blackwell
人工智能·云计算·云服务·云存储
oMcLin13 小时前
如何在 Ubuntu 22.04 LTS 上部署并优化 OpenStack 云计算平台,实现多租户虚拟化与弹性伸缩?
ubuntu·云计算·openstack
●VON13 小时前
从模型到价值:MLOps 工程体系全景解析
人工智能·学习·制造·von
好奇龙猫13 小时前
【人工智能学习-AI-MIT公开课第 18. 表示:分類、軌跡、過渡】
学习
hhcccchh14 小时前
学习vue第八天 Vue3 模板语法和内置指令 - 简单入门
前端·vue.js·学习
浩瀚地学15 小时前
【Java】异常
java·开发语言·经验分享·笔记·学习
Nan_Shu_61415 小时前
学习: Threejs (3)& Threejs (4)
学习
Tob管理笔记16 小时前
建筑业如何精准开拓优质客户?技术驱动下的方法论与实践
大数据·云计算·数据库开发
IT=>小脑虎16 小时前
2026版 Python零基础小白学习知识点【基础版详解】
开发语言·python·学习