TOC
本文简单记录一下批量操作虚拟机时的一个安装软件的初始化操作.
想象一下,当需要在上百台虚拟机上安装相同的软件时,如果手工一台虚拟机一台虚拟机的安装软件,那是一种怎样的绝望.
这里用 ansible 来批量操作多台虚拟机,手工的工作量只有两点:
- 写安装软件的脚本,或者说 ansible 的play book
- 定义有哪些虚拟机需要执行这些脚本行为.
install-package.yml:
---
- hosts: all
remote_user: root
tasks:
- name: yum install epel-release
yum: name="epel-release"
- name: yum install package
yum: name={{ item }}
with_items:
- net-tools
- bind-utils
- curl
- telnet
- iotop
- sysstat
- iftop
- rsync
- strace
- tree
- vim
- lrzsz
- unzip
- name: disable Selinux
shell: setenforce 0
- name: change Selinux config
lineinfile:
dest: /etc/selinux/config
regexp: '^SELINUX='
line: 'SELINUX=disabled'
- name: Firewalld disable
service: name=firewalld state=stopped enabled=no
########Ulimit Init########
- name: Ulimit change
shell: ulimit -HSn 65535;ulimit -u 81920
- name: Change limits.conf nofile
lineinfile:
dest: /etc/security/limits.conf
regexp: '\* - nofile [0-9]+'
#backrefs: no
line: '* - nofile 65535'
- name: Change limits.conf nproc
lineinfile:
dest: /etc/security/limits.conf
regexp: '\* - nproc [0-9]+'
#backrefs: no
line: '* - nproc 81920'
- name: change hostname
shell: "hostnamectl set-hostname node$(ip addr |grep global |grep $(route |grep default |awk '{print $NF}') |head -n1 |awk '{print $2}' |cut -d '/' -f1 |cut -d '.' -f4)"
微信公众号
扫描下面的二维码关注我们的微信公众号,第一时间查看最新内容。同时也可以关注我的Github,看看我都在了解什么技术,在页面底部可以找到我的Github。