当前位置: 首页 > news >正文

8.20-ansible剧本的使用+roles的应用

一、设置ansible的组

  [root@m0 ~]# vim /etc/ansible/hosts​​s0 ansible_ssh_host=192.168.2.110 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=1​s1 ansible_ssh_host=192.168.2.111 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=1​s2 ansible_ssh_host=192.168.2.112 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=1​[s]s0s1s2

二、使用剧本修改nginx的端口号为8080

  [root@m0 ~]# vim /etc/ansible/playbook/nginx.yml​----       hosts:           sremote_user:     roottasks:-       name:   卸载httpdyum:    name=httpd   state=absent​-       name:   安装nginxyum:    name=nginx   state=present​-       name:   修改资源文件shell:  echo 'i am nginx,port is 80' > /usr/share/nginx/html/index.html​-       name:   修改端口command:        sed -i '/listen/s/80/8080/g' /etc/nginx/nginx.confnotify:-       restart nginx​-       name:   启动服务service:        name=nginx   state=started  enabled=yes​handlers:-       name:   restart nginxservice:        name=nginx   state=restarted...​​[root@m0 ~]# ansible-playbook /etc/ansible/playbook/nginx.yml 

三、roles

1.环境部署

  [root@m0 ~]# cd /etc/ansible/roles[root@m0 roles]# mkdir nginx[root@m0 roles]# lsnginx[root@m0 roles]# cd nginx/[root@m0 nginx]# mkdir files​[root@m0 nginx]# mkdir tasks​[root@m0 nginx]# mkdir handlers/​[root@m0 nginx]# mkdir handlers​[root@m0 nginx]# mkdir templates​[root@m0 nginx]# mkdir vars​[root@m0 nginx]# mkdir meta[root@m0 nginx]# tree.├── files├── handlers├── meta├── tasks├── templates└── vars​6 directories, 0 files[root@m0 nginx]# touch files/main.yml[root@m0 nginx]# touch handlers/main.yml[root@m0 nginx]# touch tasks/main.yml[root@m0 nginx]# touch vars/main.yml[root@m0 nginx]# touch meta/main.yml​[root@m0 nginx]# rm -rf files/main.yml [root@m0 nginx]# tree.├── files├── handlers│   └── main.yml├── meta│   └── main.yml├── tasks│   └── main.yml├── templates└── vars└── main.yml​6 directories, 4 files​[root@m0 nginx]# cd

2.下载nginx的主配置文件

  [root@m0 ~]# vim /etc/ansible/playbook/test002.yml ​----       hosts:  sremote_user:    rootroles:-       nginx...

3.运行文件

  [root@m0 ~]# ansible-playbook /etc/ansible/playbook/test002.yml ​PLAY [s] ***************************************************************************​TASK [Gathering Facts] *************************************************************ok: [s1]ok: [s2]ok: [s0]​PLAY RECAP *************************************************************************s0                         : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   s1                         : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   s2                         : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   ​

4.卸载nginx

  [root@m0 ~]# ansible s -m yum -a 'name=nginx state=absent'

5.编辑配置文件-安装nginx

  [root@m0 ~]# vim /etc/ansible/roles/nginx/tasks/main.yml ​---​-       name:   卸载httpdyum:    name=httpd      state=absent​-       name:   卸载nginxyum:    name=nginx      state=absent​-       name:   安装nginxyum:    name=nginx      state=present​-       name:   启动服务service:        name=nginx      state=started   enabled=yes...​

6.运行main.yml配置文件

  [root@m0 ~]# ansible-playbook /etc/ansible/playbook/test002.yml ​PLAY [s] ***************************************************************************​TASK [Gathering Facts] *************************************************************ok: [s2]ok: [s1]ok: [s0]​TASK [nginx : 卸载httpd] *************************************************************ok: [s1]ok: [s2]ok: [s0]​TASK [卸载nginx] *********************************************************************ok: [s0]ok: [s1]ok: [s2]​TASK [安装nginx] *********************************************************************changed: [s1]changed: [s2]changed: [s0]​TASK [nginx : 启动服务] ****************************************************************changed: [s0]changed: [s1]changed: [s2]​PLAY RECAP *************************************************************************s0                         : ok=5    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   s1                         : ok=5    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   s2                         : ok=5    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

四、使用roles搭建lnmp

1.nginx修改端口为8080

2.mariadb中创建eleme数据库

3.创建user表

字段类型约束字段名称
idint主键约束、自增编号
usernamevarchar非空主键账号
passwordvarchar非空主键密码
remarkvarchar没有主键账号权限说明

1.主配置文件

  [root@m0 ~]# vim /etc/ansible/playbook/test003.yml​----       hosts: sremote_user: rootroles:-       mariadb...​

2.拷贝文件nginx且改名为mariadb

  [root@m0 ~]# cd /etc/ansible/roles/[root@m0 roles]# lsnginx[root@m0 roles]# cp -r nginx mariadb[root@m0 roles]# lsmariadb  nginx[root@m0 roles]# cd mariadb/[root@m0 mariadb]# lsfiles  handlers  meta  tasks  templates  vars

3.创建script目录

  [root@m0 mariadb]# cd ..[root@m0 roles]# mkdir script[root@m0 roles]# cd script/

4.写一个数据库的脚本

  [root@m0 script]# vim dbtable.sh​#!/bin/bashmysql << EOFcreate database if not exists eleme charset utf8mb4;​use eleme;create table user(id int primary key auto_increment,username varchar(45) not null,password varchar(45) not null,remark varchar(45));quitEOF

5.修改配置文件

  [root@m0 mariadb]# vim /etc/ansible/roles/mariadb/tasks/main.yml​---​-       name:   卸载mariadbyum:    name=mariadb,mariadb-server,mariadb-devel      state=absent​-       name:   安装mariadbyum:    name=mariadb,mariadb-server,mariadb-devel      state=present​-       name:   启动mariadb服务service:        name=mariadb      state=started   enabled=yes​-       name:   执行脚本,创建数据库和数据表script: /etc/ansible/roles/script/dbtable.sh...

6.运行:

  [root@m0 script]# cd[root@m0 ~]# ansible-playbook /etc/ansible/playbook/test003.yml​PLAY [s] ***************************************************************************​TASK [Gathering Facts] *************************************************************ok: [s1]ok: [s0]ok: [s2]​TASK [卸载mariadb] *******************************************************************changed: [s2]changed: [s0]changed: [s1]​TASK [安装mariadb] *******************************************************************changed: [s0]changed: [s2]changed: [s1]​TASK [启动mariadb服务] *****************************************************************changed: [s0]changed: [s2]changed: [s1]​TASK [mariadb : 执行脚本,创建数据库和数据表] ****************************************************changed: [s0]changed: [s2]changed: [s1]​PLAY RECAP *************************************************************************s0                         : ok=5    changed=4    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   s1                         : ok=5    changed=4    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   s2                         : ok=5    changed=4    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

7.在被测试主机上进行验证

  # s0主机[root@s0 ~]# mysqlWelcome to the MariaDB monitor.  Commands end with ; or \g.Your MariaDB connection id is 3Server version: 5.5.68-MariaDB MariaDB Server​Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.​Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.​MariaDB [(none)]> show databases;+--------------------+| Database           |+--------------------+| information_schema || eleme              || mysql              || performance_schema || test               |+--------------------+5 rows in set (0.00 sec)​MariaDB [(none)]> use eleme;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -A​Database changedMariaDB [eleme]> show tables;+-----------------+| Tables_in_eleme |+-----------------+| user            |+-----------------+1 row in set (0.00 sec)​MariaDB [eleme]> select * from user;Empty set (0.00 sec)​# s1主机[root@s1 ~]# mysqlWelcome to the MariaDB monitor.  Commands end with ; or \g.Your MariaDB connection id is 3Server version: 5.5.68-MariaDB MariaDB Server​Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.​Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.​MariaDB [(none)]> show databases;+--------------------+| Database           |+--------------------+| information_schema || eleme              || mysql              || performance_schema || test               |+--------------------+5 rows in set (0.00 sec)​MariaDB [(none)]> use eleme;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -A​Database changedMariaDB [eleme]> show tables;+-----------------+| Tables_in_eleme |+-----------------+| user            |+-----------------+1 row in set (0.00 sec)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 书橱系统小程序的设计
  • C控制语句:分支和跳转(终章·题目)
  • redis | 认识非关系型数据库Redis的列表类型及python如何操作redis
  • 【Redis】Redis客户端——Jedis(Java)
  • MATLAB 计算两点沿某个方向的间距(81)
  • MFC工控项目实例之六CFile添加菜单栏
  • 软件测试工程师必须了解的B/S架构及其测试要点
  • 8.3 数据库基础技术-关系代数
  • 加州大学圣地亚哥分校 沉浸式遥操作机器人系统
  • [GKCTF 2021]excel 骚操作1
  • shadertoy sdSegment 原理
  • 工厂现场多功能帮手,三防平板改善管理体验
  • 简化登录流程,助力应用建立用户体系
  • 计算机视觉概念科普
  • linux 安装kafaka单体服务
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • Angular Elements 及其运作原理
  • ES2017异步函数现已正式可用
  • Laravel5.4 Queues队列学习
  • ng6--错误信息小结(持续更新)
  • Redis字符串类型内部编码剖析
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • yii2中session跨域名的问题
  • 构建二叉树进行数值数组的去重及优化
  • 回顾 Swift 多平台移植进度 #2
  • 基于组件的设计工作流与界面抽象
  • 蓝海存储开关机注意事项总结
  • 前端工程化(Gulp、Webpack)-webpack
  • 数组的操作
  • 一份游戏开发学习路线
  • Semaphore
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​Redis 实现计数器和限速器的
  • ​香农与信息论三大定律
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (27)4.8 习题课
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (八十八)VFL语言初步 - 实现布局
  • (二)pulsar安装在独立的docker中,python测试
  • (二十六)Java 数据结构
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (黑马C++)L06 重载与继承
  • (九)信息融合方式简介
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (四)c52学习之旅-流水LED灯
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (一)u-boot-nand.bin的下载
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .net framework 4.8 开发windows系统服务
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .net 验证控件和javaScript的冲突问题
  • .Net7 环境安装配置