ansible之role
更新:HHH   时间:2023-1-7


注意三台都需要联网
我的是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 root@192.168.80.101
ssh-copy-id root@192.168.80.102

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 
返回云计算教程...