自动化运维Ansible Roles构建基础环境(实战)

准备4台centos7环境

IP:192.168.1.71        主控端        

IP:192.168.1.72  被控端       web01

IP:192.168.1.73  被控端       web02

IP:192.168.1.74             被控端       lb01

基础环境:

1、yum仓库

2、软件安装

3、关闭sellinux

4、关闭firewalld防火墙

5、创建www用户

6、ssh服务优化、ssh-key管理

7、存放备份的脚本,还需要编写定时任务

8、安装prometheus-agent、并配置好prometheus-agent

1、前置条件

for i in  72 73 74; do  ssh-copy-id -i ~/.ssh/id_rsa.pub  root@192.168.1.$i; done

2、主机清单文件:

[root@wld-01-71 roles]# ls

base  group_vars  hosts  site.yml

[root@wld-01-71 roles]# cat hosts

[webservers]

web01 ansible_ssh_host=192.168.1.72

web02 ansible_ssh_host=192.168.1.73

[lbservers]

lb01 ansible_ssh_host=192.168.1.74

3、创建Roles目录

[root@wld-01-71 roles]# pwd

/etc/ansible/roles

[root@wld-01-71 roles]# mkdir {group_vars,base/{tasks,handlers,templatess}} -pv

mkdir: 已创建目录 "group_vars"

mkdir: 已创建目录 "base"

mkdir: 已创建目录 "base/tasks"

mkdir: 已创建目录 "base/handlers"

mkdir: 已创建目录 "base/templatess"

4、脚本编写

[root@wld-01-71 base]# tree

.

├── handlers

├── tasks

│   └── main.yml

└── templatess

    ├── blackbox_exporter.service

    ├── node_exporter.service

    └── sshd_config.j2

[root@wld-01-71 roles]# cat base/tasks/main.yml

---

- name: Add Base Yum Repository

  yum_repository:

    name: base

    description: Base Aliyun Repository

    baseurl: http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/

    gpgcheck: yes

    gpgkey: http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

- name: Add EPEL Yum Repository

  yum_repository:

    name: EPEL

    description: EPEL YUM Repository

    baseurl: http://mirrors.aliyun.com/epel/7/$basearch/

    gpgcheck: no

- name: Add Nginx Yum Repository

  yum_repository:

    name: Nginx

    description: Nginx YUM Repository

    baseurl: http://nginx.org/packages/centos/7/$basearch/

    gpgcheck: no

  when: (ansible_hostname is match ( "web*" )) or (ansible_hostname is match( "lb*" ))

- name: Add PHP Yum Repository

  yum_repository:

    name: PHP

    description: PHP YUM Repository

    baseurl: http://us-east.repo.webtatic.com/yum/el7/x86_64/

    gpgcheck: no

  when: (ansible_hostname is match ( "web*" ))

- name: Istalled Packages

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

  vars:

    packages:

      - net-tools

      - vim

      - tree

      - lrzsz

      - wget

      - unzip

      - telnet

      - nmap

      - nc

      - psmisc

      - httpd-tools

      - sysstat

      - rsync

- name: Disable Selinux

  selinux: state=disabled

- name: Disable Firewalld

  firewalld: state=disabled

- name: Create Group WWW

  group: name=www gid=666

- name: Create User WWW

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

- name: Create Group Tomcat

  group: name=tomcat gid=888

- name: Create User Tomcat

  user: name=tomcat uid=888 group=888 createhome=no shell=/sbin/nologin

- name: Create Group prometheus

  group: name=prometheus gid=777

- name: Create User prometheus

  user: name=prometheus uid=777 group=777 createhome=no shell=/sbin/nologin

- name: Add node_exporter server

  copy: src=/etc/ansible/roles/base/templatess/node_exporter-0.17.0.linux-amd64.tar.gz dest=/usr/local/src

  tags: cppkg

- name: tar node_exporter

  shell: cd /usr/local/src;tar -xvf node_exporter-0.17.0.linux-amd64.tar.gz -C /usr/local/

- name: Create Soft Link

  file: src={{ "/usr/local/node_exporter-0.17.0.linux-amd64" }} dest={{ "/usr/local/node_exporter" }} state=link

- name: Copy node_exporter.service

  copy: src=/etc/ansible/roles/base/templatess/node_exporter.service dest=/usr/lib/systemd/system/

- name: Set the boot to start automatically

  shell: systemctl enable node_exporter.service

- name: Start the service

  shell: systemctl start node_exporter.service

- name: Add blackbox_exporter server

  copy: src=/etc/ansible/roles/base/templatess/blackbox_exporter-0.14.0.linux-amd64.tar.gz dest=/usr/local/src

  tags: cppkg

- name: tar blackbox_exporter

  shell: cd /usr/local/src;tar -xvf blackbox_exporter-0.14.0.linux-amd64.tar.gz -C /usr/local/

- name: Create Soft Link

  file: src={{ "/usr/local/blackbox_exporter-0.14.0.linux-amd64" }} dest={{ "/usr/local/blackbox_exporter" }} state=link owner=prometheus group=prometheus

- name: Copy blackbox_exporter.service

  copy: src=/etc/ansible/roles/base/templatess/blackbox_exporter.service dest=/usr/lib/systemd/system/

- name: Copy Blackbox Conf

  copy: src=/etc/ansible/roles/base/templatess/blackbox.yml dest=/usr/local/blackbox_exporter/

- name: Set the boot to start automatically

  shell: systemctl enable blackbox_exporter.service

- name: Start blackbox_exporter service

  shell: systemctl start blackbox_exporter.service

5、site playbook 文件调用

[root@wld-01-71 roles]# cat site.yml

- hosts: all

  roles:

    - base

6、输出结果

7、被控端结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值