ansible-playbook 编译安装nginx

mkdir /etc/ansible/roles/nginx/{files,templates,tasks,handlers,vars,default,meta} -pv

└── nginx

    ├── default

    ├── files

    │ └── nginx-1.12.2.tar.gz

    ├── handlers

    │ └── main.yml

    ├── meta

    ├── tasks

    │ └── main.yml

    ├── templates

    │ ├── index.html.j2

    │ └── nginx.conf.j2

    └── vars

 

cat nginx/tasks/main.yml

- name: copy nginx

  copy: src=nginx-1.12.2.tar.gz dest=/usr/local/src/

- name: yum pcre pcre-devel openssl openssl-devel zlib zlib-devel gcc-c++

  yum: name={{ item }} state=present

  with_items:

  - pcre

  - pcre-devel

  - openssl

  - openssl-devel

  - zlib

  - zlib-devel

  - gcc-c++

- name: tar nginx

  shell: chdir=/usr/local/src tar -zxf nginx-1.12.2.tar.gz

- name: install nginx

  shell: chdir=/usr/local/src/nginx-1.12.2 ./configure && make && make install

- name: copy nginx.conf

  template: src=nginx.conf.j2 dest=/usr/local/nginx/conf/nginx.conf

- name: copy index.html

  template: src=index.html.j2 dest=/usr/local/nginx/html/index.html

- name: open 80

  shell: firewall-cmd --zone=public --add-port=80/tcp --permanent

  notify:

  - restart firewall

- name: open nginx

  shell: /usr/local/nginx/sbin/nginx

 

cat nginx/handlers/main.yml

- name: restart firewall

  service: name=firewalld state=restarted

 

cat nginx/templates/index.html.j2

<!DOCTYPE html>

<html>

<head>

<title>{{ ansible_all_ipv4_addresses }}</title>

</style>

</head>

<body>

<h1>This is {{ ansible_fqdn }} index page IP is {{ ansible_all_ipv4_addresses }}</h1>

</body>

</html>

 

 cat nginx/templates/nginx.conf.j2

#user  nobody;

worker_processes  {{ ansible_processor_vcpus }}; //其余的没有变

 

cat nginx.yml

- hosts: nginx

 remote_user: root

 roles:

   - nginx

posted on 2018-02-16 16:10  徐应钟  阅读(764)  评论(0编辑  收藏  举报

导航