当前位置: 首页 > 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)


http://www.mrgr.cn/news/10415.html

相关文章:

  • Spring Security框架的学习
  • Spring中的AopUtils
  • Go小技巧易错点100例(十六)
  • 【网络安全】服务基础阶段——第一节:Windows系统管理基础----进制转换与IP地址
  • 【C语言】结构体
  • (每日一问)设计模式:设计模式的原则与分类——如何提升代码质量?
  • 数据结构之树体系:二叉树、平衡二叉树、红黑树、AVL树、B树、B+树、最小生成树、哈夫曼树、决策树、LSM树、后缀树、R树
  • 【机器学习】2. 数据预处理
  • Flask中的session
  • C# 使用RestSharp 开发WebApi client端,实现MES通信
  • 【漏洞复现】SuiteCRM responseEntryPoint Sql注入漏洞
  • mac安装java17(jdk17)
  • Spring Boot密码加密
  • Agent实际落地的应用 未来生活的无形助手
  • 基于改进YOLOv8的景区行人检测算法
  • 数据结构-串-了解串-串的基本操作
  • 信号的产生
  • SQL Server事务日志文件过大的处理方法
  • 计算机网络-数据链路层
  • Nginx反向代理B