准备ansible端 db1(安装nginx与php和项目) db2(安装数据库) 并做好管理关联配置
路径可以自定义,例/root/juben.dir
#ansible-galaxy init nginx
#ansible-galaxy init php
#ansible-galaxy init mariadb
#ansible-galaxy init wordpress
创建完成后会生成以下目录
继续创建role.yaml 编辑以下内容
这里定义的两个变量
hostname为后面执行ansinle命令时指定主机的名字
role是需要演示的角色的名字
1.定义nginx的配置文件模版
#cp /etc/nginx/nginx.conf /opt/
#vim /opt/nginx.conf
首先对user定义一个变量
然后server模块中加入两个location模块 ?
location / {
?? ??? ??? ?root /usr/share/nginx/html;
?? ??? ??? ?index index.php;
?? ??? ?}
? ? ? ? location ~ \.php$ {
? ? ? ? ? ? root ? ? ? ? ?/usr/share/nginx/html; ?#指定网站目录
? ? ? ? ? ? fastcgi_pass ? 127.0.0.1:9000; ? ?#指定访问地址
? ? ? ? ? ? fastcgi_index ?index.php;?? ??? ?#指定默认文件
? ? ? ? ? ? fastcgi_param ?SCRIPT_FILENAME ?$document_root$fastcgi_script_name; #站点根目录,取决于root配置项
? ? ? ? ? ? include ? ? ? ?fastcgi_params; ?#包含nginx常量定义
? ? ? ? ?? ??? ?}
将端口和访问目录定义为一个变量
2.在nginx目录下的vars中打开main.yml给定义的变量给值
3.进入nginx角色目录内的tasks任务目录打开main.yml编写
---
# tasks file for nginx
?- name: 安装nginx源
? yum: name=epel-release state=present
?- name: 安装nginx
? yum: name=nginx state=present
?- name: 拷贝nginx配置文件
? template: src=/opt/nginx.conf dest=/etc/nginx/nginx.conf ?backup=yes
?- name: 启动nginx
? service: name=nginx state=started
4.检查配置语法
5.语法没有问题我们就可以直接执行了
6.我们可以进入db1主机查看nginx是否安装并启动
1.进入php角色目录内的tasks任务目录打开main.yml编写
---
# tasks file for php
- name: 安装php源
? yum: name=http://rpms.remirepo.net/enterprise/remi-release-7.rpm state=present- name: 安装php
? yum: name=php80-php-xsl,php80-php,php80-php-cli,php80-php-devel,php80-php-gd,php80-php-pdo,php80-php-mysql,php80-php-fpm state=present- name: 启动php
? service: name=php80-php-fpm ?state=started enabled=yes
2.检查语法
3.语法没有问题就可以直接执行
4.我们可以去db1看一下php是否被安装并启动
1.进入mariadb角色目录内的tasks任务目录打开main.yml编写
---
# tasks file for mariadb
- name: 安装数据库
? yum: name=mariadb-server,mariadb state=present- name: 启动数据库
? service: name=mariadb state=started enabled=yes- name: 创建一个数据库并授权用户密码
? shell: mysql -e "create database {{ databases_name }};grant all on {{ databases_name }}.* to '{{ user_name }}'@'%' identified by '{{ user_password }}';flush privileges"
2.在mariadb目录下的vars中打开main.yml给定义的变量给值
3.检查语法
语法没有问题就可以直接执行
4.我们可以进入db2主机查看mariadb是否安装并启动
1.上传wordpress-6.2.2-zh_CN.tar.gz到/root/juben.dir/wordpress/files/
2.进入wordpress角色目录内的tasks任务目录打开main.yml编写
---
# tasks file for wordpress
- name: 安装解压工具
? yum: name=unzip state=present- name: 上传wordpress源码包
? unarchive: src=/root/juben.dir/wordpress/files/wordpress-6.2.2-zh_CN.tar.gz ?dest={{ base_dir }}- name: 重启nginx
? service: name=nginx state=restarted
3.检查语法
语法没有问题就可以直接执行
4.我们可以进入db1的/use/share/nginx/wordpress/下看看有没有远程解压并传输成功
ok
浏览器输入db1ip测试完成基础信息填写,并登录,就到了wordpress首页