四ansible-playbook案例(nfslnmp+可道云tomcatnginx)

Posted 哭泣的馒头

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了四ansible-playbook案例(nfslnmp+可道云tomcatnginx)相关的知识,希望对你有一定的参考价值。

一、ansible安装并配置nfs服务

1、环境准备

​192.168.10.128作为nfs服务器

192.168.10.130作为nfs客户端

创建工作目录

mkdir /project/nfs -p​

2、编写主机清单文件

​cat /project/nfs/hosts

---------------------------------------------------------------------------------------------

[webserver]

192.168.10.128

[dbserver]

192.168.10.130

[all:vars]

ansible_ssh_port=22

ansible_ssh_user=root

ansible_ssh_pass=\'123456\'

​---------------------------------------------------------------------------------------------

3、编写nfs.yaml

​cat /project/nfs/nfs.yaml

​---------------------------------------------------------------------------------------------


---

- hosts: 192.168.10.128

 tasks:

   - name: Install NFS Server

     yum: name=nfs-utils state=present

   - name: Configure NFS Server

     copy: src=./exports.j2 dest=/etc/exports backup=yes

   - name: Create NFS Group

     group: name=www gid=666

   - name: Create NFS User

     user: name=www uid=666 group=666 shell=/sbin/nologin create_home=no

   - name: Create NFS Data

     file: path=/data state=directory owner=www group=www recurse=yes

   - name: Service NFS Server

     service: name=nfs state=started enabled=yes


- hosts: 192.168.10.130

 tasks:

   - name: Client Create NFS Data

     file: path=/nfs_tt state=directory

   - name: Client Mount NFS Server

     mount:

       src: 192.168.10.128:/data

       path: /nfs_tt

       fstype: nfs

       opts: defaults

       state: mounted

​​---------------------------------------------------------------------------------------------

cat exports.j2

/data 192.168.10.1/24(rw,sync,all_squash,anonuid=666,anongid=666)

​​​---------------------------------------------------------------------------------------------

​ansible-playbook nfs.yaml -i hosts

\'四、ansible-playbook案例(nfs、lnmp+可道云、tomcat、nginx)_ansible\'

二、ansible安装并配置httpd服务,根据不同的主机配置不同的网站

​​​---------------------------------------------------------------------------------------------

​cat /project/apache/hosts

[webserver]

192.168.10.128

[dbserver]

192.168.10.130

[all:vars]

ansible_ssh_port=22

ansible_ssh_user=root

ansible_ssh_pass=\'123456\'

​​​---------------------------------------------------------------------------------------------

​cat /project/apache/httpd.conf.j2 |grep 7788

Listen 7788

​​---------------------------------------------------------------------------------------------

cat /project/apache/apache.yaml

​---

- hosts: all

 remote_user: root

 tasks:

   - name: Install Httpd Server

     yum: name=httpd state=present

   - name: Configure Httpd Server

     copy: src=./httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf

   - name: Create Httpd Group

     group: name=ttt gid=7788 state=present

   - name: Create Httpd User

     user: name=ttt uid=7788 group=7788 shell=/sbin/nologin create_home=no

   - name: Service Httpd Server

     service: name=httpd state=started enabled=yes

   - name: Configure Firewalld Server

     firewalld:

       zone: public

       port: 7788/tcp

       permanent: yes

       immediate: yes

       state: enabled


- hosts: 192.168.10.128

 tasks:

   - name: Configure Web site

     copy: content=\'web-128...\' dest=/var/www/html/index.html

- hosts: 192.168.10.130

 tasks:

   - name: Configure Web site

     copy: content=\'web-130...\' dest=/var/www/html/index.html

​​---------------------------------------------------------------------------------------------

ansible-playbook apache.yaml -i hosts

三、lnmp+可道云

创建目录

/project/lnmp

​​---------------------------------------------------------------------------------------------

 cat /project/lnmp/hosts

[webserver]

192.168.10.128

[dbserver]

192.168.10.130

[all:vars]

ansible_ssh_port=22

ansible_ssh_user=root

ansible_ssh_pass=\'123456\'

​​---------------------------------------------------------------------------------------------

​可道云官网下载kodexplorer4.46.zip

​​---------------------------------------------------------------------------------------------

cat lnmp.yaml

---

- hosts: webserver

 tasks:

   - name: Install Httpd PHP Firewalld

     yum: name=httpd,php,php-pdo,php-mbstring,php-gd,firewalld state=present

   - name: Service Httpd Server

     service: name=httpd state=started

   - name: Service Firewalld Server

     service: name=firewalld state=started

   - name: Configure Firewalld

     firewalld: port=80/tcp immediate=yes state=enabled

   - name: Copy kod cloud code

     unarchive: src=./kodexplorer4.46.zip dest=/var/www/html/ mode=0777

   - name: Chown Directory

     file: path=/var/www/html owner=apache group=apache recurse=yes

​​​---------------------------------------------------------------------------------------------

ansible-playbook lnmp.yaml -i hosts

直接网页登录查看

​http://192.168.10.128/​​ ###可道云用的是index.php页面,之前实验如果有index.html页面记得删掉

error:您的web服务器开启了列目录功能,为安全考虑请禁用该功能!

vi /etc/httpd/conf/httpd.conf

144     Options Indexes FollowSymLinks

改为Options Indexes FollowSymLinks

systemctl restart httpd

​三、tomcat源码包部署


[root@db2 project2]# cat tomcat.yaml
- hosts: webserver
gather_facts: no
vars:
tomcat_version: 8.5.34
tomcat_install_dir: /usr/local
tasks:
- name: install jdk8
yum: name=java-1.8.0-openjdk state=present
- name: download tomcat
get_url: url=http://mirrors.hust.edu.cn/apche/tomcat-8/v{{ tomcat_version }}/bin/apache-tomcat-{{ tomcat_version }}.tar.gz dest=/tmp
- name: unarchive tomcat-{{ tomcat_version }}.tar.gz
unarchive:
src: /tmp/apache-tomcat-{{ tomcat_version }}.tar.gz
dest: "{{ tomcat_install_dir }}"
copy: no
- name: start tomcat
shell: cd {{ tomcat_install_dir }} &&
mv apache-tomcat-{{ tomcat_version }} tomcat8 &&
cd tomcat8/bin && nohup ./startup.sh &

四、nginx源码包安装

只安装了部分

- name: install deps
yum: name={{ item }} state=present
with_items:
- gcc
- make
- zlib-devel
- openssl-devel
- pcre-devel
- name:copy nginx source pkg
copy: src=nginx-{{ nginx_version}}.tar.gz dest=/tmp
- name: install nginx
shell: cd /tmp &&
tar -zxf nginx-{{ nginx_version }}.tar.gz &&
cd nginx-{{ nginx_version }} &&
./configure --prefix=/usr/local/nginx --user=nobody --group=nobody
--with-http_ssl_module --with-http_stub_status_module --with-stream=dynamic &&
make && make install
- name: mkdir /usr/local/nginx/conf/vhost
file: dest=/usr/local/nginx/conf/vhost state=direstory
- name: copy nginx master configuration file
copy: src=nginx.conf dest=/usr/local/nginx/conf/vhost
notify: reload nginx
- name: copy nginx configuration fro wordpress
template: src=wordpress.conf dest=/usr/local/nginx/conf/vhost/
notify: reload nginx
- name: copy nginx systemctl service
copy: src=nginx.service dest=/usr/lib/systemd/system/
- name: systemctl start service
service: name=nginx state=started enabled=yes

以上是关于四ansible-playbook案例(nfslnmp+可道云tomcatnginx)的主要内容,如果未能解决你的问题,请参考以下文章

ansible-playbook

ansible-playbook使用详解

ansible-playbook批量部署zabbix

ansible-playbook调试

ansible-playbook

ansible-playbook 变量(vars)