微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ansible之role

注意三台都需要联网
我的是80.100、80.101、80.102
我是在80.100上操作的其他两台只要开着就行了不需要操作

yum install -y epel-release  //安装epel源
yum install ansible -y

ansible --version          //查看ansible版本

yum install tree -y

cd /etc/ansible
vi hosts       //配置主机清单
最后一行添加
[web]
192.168.80.10[1:2]

ansible all --list-hosts    显示所有已定义的主机

ssh-keygen -t rsa
ssh-copy-id [email protected]
ssh-copy-id [email protected]

ansible all -a 'systemctl stop firewalld'

ansible all -a 'setenforce 0'

mkdir -p /opt/roles/Nginx/{tasks,templates}

cd /opt/roles/Nginx/tasks/

vi epel.yml
- name: copy epel
  copy: src=/etc/yum.repos.d/  dest=/etc/yum.repos.d/

vi user.yml
- name: create user
  user: name=Nginx  group=Nginx system=yes shell=/sbin/nologin

vi group.yml
- name: create group
  group: name=Nginx  system=yes

vi yum.yml
- name: install package
  yum: name=Nginx

vi start.yml
- name: start service
  service: name=Nginx state=restarted  enabled=true

vi restart.yml
- name: restart service
  service: name=Nginx state=restarted

cd ../templates/

yum install -y Nginx

cp /etc/Nginx/Nginx.conf Nginx.conf.j2

vi Nginx.conf.j2
worker_processes {{ ansible_processor_vcpus }};

cd ../tasks/

vi temp.yml
- name: copy conf file
  template: src=Nginx.conf.j2 dest=/etc/Nginx/Nginx.conf

vi main.yml
- include: epel.yml
- include: group.yml
- include: user.yml
- include: yum.yml
- include: temp.yml
- include: start.yml

cd /etc/ansible/

vi Nginx_role.yml
- hosts: web
  remote_user: root
  roles:
   - role: Nginx

tree roles/

mkdir -p /etc/ansible/group_vars/

touch /etc/ansible/group_vars/all

mkdir -p /etc/ansible/roles/common

mkdir -p /etc/ansible/roles/httpd/{files,templates,tasks,handlers,vars,defaults,Meta}

mkdir -p /etc/ansible/roles/MysqL/{files,templates,tasks,handlers,vars,defaults,Meta}

mkdir -p /etc/ansible/roles/PHP/{files,templates,tasks,handlers,vars,defaults,Meta}

touch /etc/ansible/roles/httpd/{defaults,vars,tasks,Meta,handlers}/main.yml

touch /etc/ansible/roles/MysqL/{defaults,vars,tasks,Meta,handlers}/main.yml

touch /etc/ansible/roles/PHP/{defaults,vars,tasks,Meta,handlers}/main.yml

vi /etc/ansible/site.yml
- hosts: web
  remote_user: root
  roles:
   - httpd
   - MysqL

cd /opt/

vi Nginx.yml
- hosts: web
  remote_user: root
  roles:
   - role: Nginx

ansible web -a "rpm -Uvh http://Nginx.org/packages/centos/7/noarch/RPMS/Nginx-release-centos-7-0.el7.ngx.noarch.rpm"

ansible-playbook Nginx.yml 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐