基础配置 -作业.note
一、巩固练习:
1、使用 Ansible来初始化Debian 系统:
(1)在 Ansible 主控端上安装:
apt install -y ansible python3 python3-passlib sshpass python3-paramiko(2)在 Ansible 被控端上安装:
·先配置ip地址:
192.168.10.11
192.168.10.12
192.168.10.13
apt install -y ssh(3)配置 Ansible :
·配置主配置文件:
mkdir /etc/ansible
cd /etc/ansible
vim ansible.cfg
[defaults]
inventory = /etc/ansible/hosts
//定义主机清单位置
library = /usr/share/ansible //定义模块存储的位置
forks = 50 //定义最大课连接数量
remote_user = elysia //定义要使用的远程用户
remote_port = 22 //定义远程客户端的ssh端口
host_key_checking = False
timeout = 60 //ssh 超时时间为 60
log_path = /var/log/ansible.log
(4)配置 提权:
两种方式:
(提权)方式一:
在 hosts 主机清单中书写变量:
·配置hosts主机清单:
cd /etc/ansible
vim hosts
all:
hosts:
LIN1:
ansible_host: 192.168.10.11
LIN2:
ansible_host: 192.168.10.12
LIN3:
ansible_host: 192.168.10.13
vars: //配置提权
ansible_become: True
ansible_become_method: su
ansible_become_user: root
ansible_become_pass: Skills39!
ansible_user: elysia
ansible_pass: Skills39!
ansible_port: 22
(提权)方式二:
使用 group_vars 提权:
cd /etc/ansible
mkdir group_vars
cd group_vars
vim all.yml
ansible_user: elysia
ansible_password: Skills39!
ansible_become: True
ansible_become_user: root
ansible_become_method: su
ansible_become_password: Skills39!
2、在 Ansible 主控端上生成 ssh 密钥对:
ssh-keygen3、编辑 ansible-init 剧本:
cd /etc/ansible
mkdir playbook
cd playbook
vim 01-ansible-init.yml
---
- name: init debian
hosts: all
gather_facts: False
tasks:
- name: Install Python3
ansible.builtin.raw: apt install -y python3 python3-passlib -y
changed_when: False
- name: Install Sudo
apt:
name: sudo
state: present
update_cache: false
- name: Write Sudo
community.general.sudoers:
name: Elysia Can Sudo
user: elysia
commands: ALL
nopassword: True
state: present
- name: Copy ssl pem
ansible.posix.authorized_key:
user: elysia
state: present
key: "{{ lookup('file', '/root/.ssh/id_rsa.pub') }}"
·运行:
ansible-playbook 01-ansible-init.yml
二、综合实践:
创建一个 system-init 剧本,初始化debian系统:
·安装 vim bash-completion
·设置主机名
·设置时区
1、修改 hosts 主机清单:
all:
hosts:
LIN1:
ansible_host: 192.168.10.11
hostname: "Server01" //填写主机名
LIN2:
ansible_host: 192.168.10.12
hostname: "Server02" //填写主机名
LIN3:
ansible_host: 192.168.10.13
hostname: "Server03" //填写主机名
vars:
# ansible_become: True
# ansible_become_method: su
# ansible_become_user: root
# ansible_become_pass: Skills39!
# ansible_user: elysia
# ansible_pass: Skills39!
# ansible_port: 22
2、编写 system-init 剧本:
cd /etc/ansible/playbook
vim 02-system-init.yml
---
- name: init Debian system
hosts: all
gather_facts: False
tasks:
- name: Install vim, bash-completion
apt:
name:
- vim
- bash-completion
state: present
update_cache: False
- name: Start "dbus" Server
service:
name: dbus
state: started
- name: Set HostName
hostname:
name: "{{ hostname }}"
# 这里的 hostname 引用的是 主机清单中书写的 hostname: ·运行:
ansible-playbook 02-system-init.yml
3、配置时区:
继续修改剧本;
vim 02-system-init.yml
---
- name: init Debian system
hosts: all
gather_facts: False
tasks:
- name: Install vim, bash-completion
apt:
name:
- vim
- bash-completion
state: present
update_cache: False
- name: Start "dbus" Server
service:
name: dbus
state: started
- name: Set HostName
hostname:
name: "{{ hostname }}"
- name: Set timezone
timezone:
name: Asia/Shanghai
- name: Set local
command: localectl set-locale LANG=zh_CN.UTF-8
·运行:
ansible-playbook 02-system-init.yml
三、延申扩展:

1、构建包含组、变量等的清单:
vim /etc/ansible/hosts
all:
hosts:
LIN1:
ansible_host: 192.168.10.11
hostname: "Server01"
LIN2:
ansible_host: 192.168.10.12
hostname: "Server02"
LIN3:
ansible_host: 192.168.10.13
hostname: "Server03"
vars: //定义所有 hosts 的变量
# ansible_become: True
# ansible_become_method: su
# ansible_become_user: root
# ansible_become_pass: Skills39!
# ansible_user: elysia
# ansible_pass: Skills39!
# ansible_port: 22
children:
children:
email: //定义组:email
hosts:
LIN1:
LIN2:
vpn: //定义组:vpn
hosts:
LIN2:
LIN3:
web: //定义组:web
hosts:
LIN1:
LIN3:
2、创建剧本以使用模块实现更多的特性:
(1)使用 service模块创建剧本,关闭/启动 apache2服务:
vim 03-start_stop_service.yml
---
- name: Service Mode
hosts: all
tasks:
- name: Stop Service
service:
name: apache2
state: stopped
- name: Start Service
service:
name: apache2
state: started
运行:
ansible-playboo 03-start_stop_service.yml