ansible-playbook编写服务器初始化脚本

 

1.原理:通过limit的参数,限制新定义的服务器。即可给新买的服务器初始化优化。(如下图所示)

 

 

 

首先我们编写一个总入口的palybook脚本: init.yml

---
- hosts: all
  user: root
  gather_facts: true
  roles:
    - ../../init

 

第二步:创建相对应的目录。这些目录都有各自的功能。

mkdir {file,tasks,vars}                // 具体的目录和功能,可以上网查一下。

第三步:进入到vars目录下定义hosts的内置变量

vim main.yml
---
HOSTNAME: "{{ inventory_hostname }}"
IP: "{{ ansible_eth0['ipv4']['address'] }}"

 

第四步:进入到tasks目录下,创建任务的脚本。

main.yml作为整个tasks目录的总入口,是必须有这个配置

 

vim main.yml
---
- name: 复制 PS1 变量
  copy:
    src: ps1.sh
    dest: /etc/profile.d/
- shell: source /etc/profile
- include_tasks: init_hostname.yml    # include类似于子配置脚本。
- include_tasks: init_user.yml
- include_tasks: init_tools.yml

 子脚本1

vim init_user.yml
---
# 创建用户。generate_ssh_key参数是生成公钥和私钥。我这里主要是生成.ssh目录,然后推送authorized_key
- name: create user
  user: name="{{ item}}" append=yes generate_ssh_key=yes
  with_items:
    - ops
    - dev
# 推送用到authorized_key模块
- name:
  authorized_key: user={{ item }} key={{ lookup('file', '/home/{{ item }}/.ssh/id_rsa.pub') }}
  with_items:
  - ops
  - dev

子脚本2

vim init_tools.yml
---
- name: 安装基本命令
  yum: name={{ item }}
  with_items:
    - epel-release
    - telnet
    - vim
    - unzip
    - tree
    - net-tools
    - git
    - screen

子脚本3

 

vim init_hostname.yml
--- - name: update file (/etc/sysconfig/network) lineinfile: dest: /etc/sysconfig/network regexp: '^HOSTNAME' line: 'HOSTNAME={{ HOSTNAME }}' when: ansible_distribution == 'CentOS' and ansible_distribution_major_version == "6" - name: execute hostname command shell: hostname {{ HOSTNAME }} when: ansible_distribution == 'CentOS' and ansible_distribution_major_version == "6" - name: set hostname for centos7 shell: hostnamectl set-hostname "{{ HOSTNAME }}" when: ansible_distribution == 'CentOS' and ansible_distribution_major_version == "7"

上面还定义了一个拷贝文件的任务。所以我们在要files的目录下,放上你要用到的文件

vim ps1.sh
# 更改 PS1 显示
export PS1='[\[\e[36m\]\u\[\e[33m\]@\[\e[34m\]\H\[\e[33m\]:\[\e[32m\]\w\[\e[0m\]]\$ '
# 历史命令
HISTSIZE=100000

 

这样,一个简单的role角本就写好了。下面我们来创建新的虚拟机,添加hosts文件。验证一下结果吧

添加hosts文件

 

 

验证结果

这样,通过ansible的playbook,就可以对新的服务器进行初始化了。

转载于:https://www.cnblogs.com/yeyu1314/p/11391794.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值