parent
21a172ce63
commit
8de901aa05
9 changed files with 519 additions and 0 deletions
@ -0,0 +1,5 @@ |
||||
[defaults] |
||||
inventory = hosts |
||||
remote_user = root |
||||
# private_key_file = cdh_private.key |
||||
host_key_checking = False |
@ -0,0 +1,17 @@ |
||||
--- |
||||
- name: 环境准备 |
||||
hosts: new_cdh_servers |
||||
# become: true 不需要become,默认就是root用户 |
||||
vars_prompt: |
||||
- name: mysql_pass |
||||
prompt: 请输入你想设置的MySQL root账户密码(默认为antiy?918) |
||||
default: "antiy?918" |
||||
tasks: |
||||
- include: tasks/basic_settings.yml |
||||
- include: tasks/deploy_mysql.yml |
||||
- include: tasks/deploy_cm.yml |
||||
- name: 安装完成,请继续配置 |
||||
run_once: yes |
||||
delegate_to: localhost |
||||
pause: |
||||
prompt: "所有安装已经完成,请访问 {{ group['new_cdh_servers'][0] }}:7180 进行下一步配置" |
@ -0,0 +1,38 @@ |
||||
-----BEGIN OPENSSH PRIVATE KEY----- |
||||
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 |
||||
-----END OPENSSH PRIVATE KEY----- |
@ -0,0 +1 @@ |
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCxzm0vtfe4aVV3L3yStD/HEpK+iU/mxxzRqYOLtCEcbYTlEZTFlBHLyvVmPLPXGlV/1w5Gg3Fx0ThT0W2LcYM0eMmO3VkL4VTHr5OLAEujtmYrZSyBdDNKRiGQ/ky8wF/A1gAwBPOtvB6GJsX+YoBZ3pdVIBOK9bJG5BYWI0FT6mn8osstUYDLsqZ/KlUV+h97ynU9JjFEDsgDWyYWUGByDJPBMa44Q7vFjQr+8/bVPLPNmqpEDjw5pMQOUu1of470BMoQTq3/QmHNiWjAN/ntalLFHGo/gG9Vj1znZV6IcgAJkCzURh06ZGRmCbeNzb6yN8qZ/z3uIRq7/Iqko+BC1rI8qsTSujUKcAnpgSPhN3MABV1kLgnnfrki3JpFCaBaA1aaokBlzoiBr2kQCTdeCoqbGuJ9Rjd6kKRw954oQ/Eqae7YCWJB3Uns3PQ8g4Cge6Vn+JY7+o3XXz8Hr9PDAOexhYKuLznVPgMxk7r/K3m4GAhwlNop3MaHcMhtrNk= luomio@mbp.local |
@ -0,0 +1,23 @@ |
||||
[cdh_servers] |
||||
cdh01.ghadoop ansible_ssh_host=10.251.24.2 ansible_ssh_port=22 |
||||
cdh02.ghadoop ansible_ssh_host=10.251.24.3 ansible_ssh_port=22 |
||||
cdh03.ghadoop ansible_ssh_host=10.251.24.4 ansible_ssh_port=22 |
||||
cdh04.ghadoop ansible_ssh_host=10.251.24.5 ansible_ssh_port=22 |
||||
cdh05.ghadoop ansible_ssh_host=10.251.24.6 ansible_ssh_port=22 |
||||
|
||||
[new_cdh_servers] |
||||
cdh01.ghadoop ansible_ssh_host=10.251.24.102 ansible_ssh_port=22 |
||||
cdh02.ghadoop ansible_ssh_host=10.251.24.103 ansible_ssh_port=22 |
||||
cdh03.ghadoop ansible_ssh_host=10.251.24.104 ansible_ssh_port=22 |
||||
cdh04.ghadoop ansible_ssh_host=10.251.24.105 ansible_ssh_port=22 |
||||
cdh05.ghadoop ansible_ssh_host=10.251.24.106 ansible_ssh_port=22 |
||||
|
||||
[cdh_source] |
||||
server ansible_ssh_host=192.168.0.10 ansible_ssh_port=22 |
||||
|
||||
[cdh_control] |
||||
cdh01.ghadoop ansible_ssh_host=10.251.24.102 ansible_ssh_port=22 |
||||
|
||||
[new_cdh_servers:vars] |
||||
ansible_ssh_user=root |
||||
ansible_ssh_pass=antiy?918 |
@ -0,0 +1,240 @@ |
||||
--- |
||||
- name: 上传安装包 |
||||
copy: src=offline_cdh dest=/opt/ |
||||
- name: 禁用SELinux和防火墙 |
||||
block: |
||||
- name: 禁用SELinux |
||||
ansible.builtin.lineinfile: |
||||
path: /etc/sysconfig/selinux |
||||
regexp: '^SELINUX=' |
||||
line: SELINUX=disabled |
||||
- name: 禁用防火墙 |
||||
ansible.builtin.service: |
||||
name: firewalld |
||||
state: stopped |
||||
enabled: no |
||||
- name: 修改主机名并分发给各主机 |
||||
tags: |
||||
- host |
||||
block: |
||||
- name: 设置主机名 |
||||
ansible.builtin.hostname: |
||||
name: "{{ inventory_hostname }}" |
||||
- name: 修改 /etc/sysconfig/network 内的主机名设置 |
||||
ansible.builtin.lineinfile: |
||||
path: /etc/sysconfig/network |
||||
regexp: '^HOSTNAME=' |
||||
line: "HOSTNAME={{ inventory_hostname|lower }}" |
||||
- name: 重启网络服务 |
||||
ansible.builtin.service: |
||||
name: network |
||||
state: restarted |
||||
- name: 分发主机名信息到各个主机 |
||||
blockinfile: |
||||
path: /etc/hosts |
||||
block: | |
||||
{% for h in groups['new_cdh_servers'] | sort %} |
||||
{{ hostvars[h].ansible_default_ipv4.address }} {{ h }} |
||||
{% endfor %} |
||||
- name: 安装软件包 |
||||
tags: |
||||
- pkgs |
||||
ansible.builtin.yum: |
||||
name: |
||||
- sysstat |
||||
- vim |
||||
- wget |
||||
- lrzsz |
||||
- screen |
||||
- gcc |
||||
- python-devel |
||||
- gcc-c++ |
||||
- ntpdate |
||||
- libyaml |
||||
- libyaml-devel |
||||
- python-setuptools |
||||
- ntp |
||||
- libaio # for mysql |
||||
- expect # for mysql |
||||
- mariadb # 这是mysql客户端工具,改名了 |
||||
- psmisc # for /opt/cm-5.14.2/etc/init.d/cloudera-scm-server start |
||||
state: present |
||||
- name: SSH互信配置 |
||||
tags: |
||||
- dpk |
||||
block: |
||||
- name: 生成ssh私钥 |
||||
command: |
||||
cmd: ssh-keygen -f /root/.ssh/id_rsa -N "" |
||||
creates: /root/.ssh/id_rsa |
||||
- name: 将公钥下载到Ansible中控机 |
||||
fetch: |
||||
src: /root/.ssh/id_rsa.pub |
||||
dest: /tmp/pubkeys/{{ inventory_hostname }}.pub |
||||
flat: yes |
||||
- name: 将ssh指纹信息下载到中控机 |
||||
block: |
||||
- name: 先cat获取 |
||||
command: cat /etc/ssh/ssh_host_ecdsa_key.pub |
||||
register: ssh_finger |
||||
- name: 然后输出到临时文件 |
||||
ansible.builtin.lineinfile: |
||||
path: /tmp/ssh_fingerprint |
||||
line: "{{ inventory_hostname }},{{ hostvars[inventory_hostname].ansible_default_ipv4.address }} {{ ssh_finger.stdout_lines[0] }}" |
||||
insertbefore: BOF |
||||
create: yes |
||||
- name: 最后获取到本地 |
||||
fetch: |
||||
src: /tmp/ssh_fingerprint |
||||
dest: /tmp/fingerprints/{{ inventory_hostname }}.known_hosts |
||||
flat: yes |
||||
- name: 然后删除服务器上的临时文件 |
||||
ansible.builtin.file: |
||||
path: /tmp/ssh_fingerprint |
||||
state: absent |
||||
- name: 删除之前遗留的旧文件 |
||||
run_once: yes |
||||
delegate_to: localhost |
||||
file: |
||||
path: "{{ item }}" |
||||
state: absent |
||||
with_items: |
||||
- /tmp/authorized_keys |
||||
- /tmp/known_hosts |
||||
- name: 合并公钥信息 |
||||
run_once: yes |
||||
delegate_to: localhost |
||||
ansible.builtin.assemble: |
||||
src: /tmp/pubkeys/ |
||||
dest: /tmp/authorized_keys |
||||
- name: 合并指纹信息 |
||||
run_once: yes |
||||
delegate_to: localhost |
||||
ansible.builtin.assemble: |
||||
src: /tmp/fingerprints/ |
||||
dest: /tmp/known_hosts |
||||
- name: 上传指纹信息和公钥信息到各个主机 |
||||
copy: |
||||
src: "{{ item }}" |
||||
dest: "{{ item }}" |
||||
loop: |
||||
- /tmp/authorized_keys |
||||
- /tmp/known_hosts |
||||
- name: 将公钥复制到用户配置 |
||||
blockinfile: |
||||
path: /root/.ssh/authorized_keys |
||||
block: "{{ lookup('file', '/tmp/authorized_keys') }}" |
||||
create: yes |
||||
mode: 0600 |
||||
- name: 将指纹信息复制到用户配置 |
||||
blockinfile: |
||||
path: /root/.ssh/known_hosts |
||||
block: "{{ lookup('file', '/tmp/known_hosts') }}" |
||||
create: yes |
||||
mode: 0600 |
||||
- name: 清楚本地临时文件和目录 |
||||
file: |
||||
path: "{{ item }}" |
||||
state: absent |
||||
with_items: |
||||
- /tmp/fingerprints/ |
||||
- /tmp/pubkeys/ |
||||
- /tmp/authorized_keys |
||||
- /tmp/known_hosts |
||||
- name: 移除系统JDK并安装离线包里面的JDK |
||||
tags: |
||||
- jdk |
||||
block: |
||||
- name: 移除系统JDK包 |
||||
ansible.builtin.yum: |
||||
name: |
||||
- java-1.6.0-openjdk |
||||
- java-1.7.0-openjdk |
||||
- java-1.8.0-openjdk |
||||
- java-11-openjdk |
||||
state: absent |
||||
autoremove: yes |
||||
- name: 安装离线包提供的JDK8 |
||||
ansible.builtin.yum: |
||||
name: /opt/offline_cdh/jdk-8u261-linux-x64.rpm |
||||
state: present |
||||
- name: 设置时间同步 |
||||
tags: |
||||
- ntp |
||||
block: |
||||
- name: 在主机01上配置NTP服务 |
||||
ansible.builtin.lineinfile: |
||||
path: /etc/ntp.conf |
||||
regexp: "^restrict 10.251" |
||||
line: restrict 10.251.24.0 mask 255.255.255.0 nomodify notrap |
||||
when: inventory_hostname == groups['new_cdh_servers'][0] |
||||
- name: 在主机01上启用NTP服务 |
||||
ansible.builtin.service: |
||||
name: ntpd |
||||
state: restarted |
||||
enabled: yes |
||||
- name: 延时一段时间以等待ntp服务就绪 |
||||
command: sleep 10 |
||||
- name: 从主机01上同步时间 |
||||
command: "ntpdate -u {{ hostvars['cdh01.ghadoop'].ansible_default_ipv4.address }}" |
||||
when: inventory_hostname != "cdh01.ghadoop" |
||||
- name: 禁用透明大页 |
||||
tags: |
||||
- nothp |
||||
block: |
||||
- name: 临时禁用碎片整理 |
||||
shell: echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag |
||||
args: |
||||
executable: /bin/bash |
||||
- name: 临时禁用透明大页 |
||||
shell: echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled |
||||
args: |
||||
executable: /bin/bash |
||||
- name: 修改Grub配置 |
||||
ansible.builtin.lineinfile: |
||||
path: /etc/default/grub |
||||
regexp: "^GRUB_CMDLINE_LINUX=" |
||||
line: GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet transparent_hugepage=never" |
||||
- name: 判断当前是Grub还是Grub2 |
||||
ansible.builtin.stat: |
||||
path: /etc/{{ item }} |
||||
register: grub2_cfg |
||||
with_items: |
||||
- grub2.cfg |
||||
- grub2-efi.cfg |
||||
- debug: |
||||
var: grub2_cfg |
||||
- name: 根据是Grub还是Grub2,更新Grub配置 |
||||
command: "grub2-mkconfig -o {{ item.stat.path }}" |
||||
when: item.stat.readable |
||||
with_items: "{{ grub2_cfg.results }}" |
||||
- name: 修改系统设置 |
||||
tags: |
||||
- setconf |
||||
block: |
||||
- name: 修改限制文件 /etc/security/limits.conf |
||||
blockinfile: |
||||
path: /etc/security/limits.conf |
||||
block: | |
||||
* soft nofile 65536 |
||||
* hard nofile 65536 |
||||
root soft nofile 65536 |
||||
root hard nofile 65536 |
||||
* soft memlock unlimited |
||||
* hard memlock unlimited |
||||
root soft memlock unlimited |
||||
root hard memlock unlimited |
||||
* soft as unlimited |
||||
* hard as unlimited |
||||
root soft as unlimited |
||||
root hard as unlimited |
||||
- name: 修改 /etc/sysctl.conf |
||||
ansible.builtin.lineinfile: |
||||
path: /etc/sysctl.conf |
||||
regexp: "{{ item.regexp }}" |
||||
line: "{{ item.line }}" |
||||
state: present |
||||
create: yes |
||||
loop: |
||||
- { regexp: "^vm.max_map_count=", line: "vm.max_map_count=131072" } |
||||
- { regexp: "^vm.swappiness=", line: "vm.swappiness=0" } |
@ -0,0 +1,85 @@ |
||||
--- |
||||
- name: 部署ClouderaManager |
||||
tags: |
||||
- cm |
||||
block: |
||||
- name: 新建用户 |
||||
ansible.builtin.user: |
||||
name: cloudera-scm |
||||
system: true |
||||
home: /opt/cm-5.14.2/run/cloudera-scm-server |
||||
create_home: false |
||||
shell: /bin/false |
||||
comment: Cloudera SCM User |
||||
- name: 解压缩CM安装包 |
||||
ansible.builtin.unarchive: |
||||
src: /opt/offline_cdh/cloudera-manager-centos7-cm5.14.2_x86_64.tar.gz |
||||
dest: /opt/ |
||||
remote_src: true |
||||
- name: 复制MySQL连接器 |
||||
ansible.builtin.copy: |
||||
src: /opt/offline_cdh/mysql-connector-java-5.1.38.jar |
||||
dest: /opt/cm-5.14.2/share/cmf/lib/ |
||||
remote_src: true |
||||
- name: 复制Parcel仓库 |
||||
ansible.builtin.copy: |
||||
src: /opt/offline_cdh/parcel-repo/ |
||||
dest: /opt/cloudera/parcel-repo/ |
||||
remote_src: true |
||||
- name: 启动ClouderaManagerServer(仅主机执行) |
||||
when: |
||||
inventory_hostname == groups['new_cdh_servers'][0] |
||||
block: |
||||
- name: 初始化数据库 |
||||
ansible.builtin.shell: | |
||||
source /opt/cm-5.14.2/etc/default/cloudera-scm-server |
||||
source /opt/cm-5.14.2/etc/default/cloudera-scm-agent |
||||
/opt/cm-5.14.2/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p'{{ mysql_pass }}' --scm-host localhost scm scm scm |
||||
- name: 创建目录 |
||||
ansible.builtin.file: |
||||
path: /var/lib/cloudera-scm-server |
||||
state: directory |
||||
- name: 启动服务 |
||||
ansible.builtin.shell: | |
||||
source /opt/cm-5.14.2/etc/default/cloudera-scm-server |
||||
source /opt/cm-5.14.2/etc/default/cloudera-scm-agent |
||||
/opt/cm-5.14.2/etc/init.d/cloudera-scm-server start |
||||
args: |
||||
executable: /bin/bash |
||||
- name: 查看日志 |
||||
ansible.builtin.command: |
||||
cmd: tail -n30 /opt/cm-5.14.2/log/cloudera-scm-server/cloudera-scm-server.log |
||||
register: cm_log |
||||
- name: Debug输出日志 |
||||
debug: |
||||
msg: "{{ cm_log.stdout_lines }}" |
||||
- name: 暂停等待确认 |
||||
pause: |
||||
prompt: 请确认输出是否正常,按“Ctrl+C c”继续 |
||||
- name: 启动ClouderaManagerAgent(所有主机) |
||||
block: |
||||
- name: 配置主节点 |
||||
ansible.builtin.lineinfile: |
||||
path: /opt/cm-5.14.2/etc/cloudera-scm-agent/config.ini |
||||
regexp: ^server_host= |
||||
line: "server_host={{ groups['new_cdh_servers'][0] | lower }}" |
||||
- name: 启动Agent |
||||
ansible.builtin.shell: | |
||||
source /opt/cm-5.14.2/etc/default/cloudera-scm-server |
||||
source /opt/cm-5.14.2/etc/default/cloudera-scm-agent |
||||
/opt/cm-5.14.2/etc/init.d/cloudera-scm-agent start |
||||
args: |
||||
executable: /bin/bash |
||||
- name: 查看日志 |
||||
ansible.builtin.command: |
||||
cmd: tail -n30 /opt/cm-5.14.2/log/cloudera-scm-agent/cloudera-scm-agent.log |
||||
register: cm_agent_log |
||||
- name: Debug输出日志 |
||||
debug: |
||||
msg: "{{ cm_agent_log.stdout_lines }}" |
||||
- name: 暂停等待确认 |
||||
pause: |
||||
prompt: | |
||||
请确认输出是否正常,按“Ctrl+C c”继续 |
||||
注意,以下信息为正常信息: |
||||
ERROR Failed to connect to previous supervisor. |
@ -0,0 +1,110 @@ |
||||
--- |
||||
- name: 部署MySQL |
||||
tags: |
||||
- mysql |
||||
when: |
||||
- inventory_hostname == groups['new_cdh_servers'][0] |
||||
block: |
||||
- name: 判断程序在不在 |
||||
ansible.builtin.stat: |
||||
path: /usr/local/mysql/bin/mysqld |
||||
register: mysqld |
||||
- name: 解压缩MySQL程序 |
||||
block: |
||||
- name: 解压缩离线包 |
||||
ansible.builtin.unarchive: |
||||
src: /opt/offline_cdh/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz |
||||
dest: /usr/local/ |
||||
remote_src: yes |
||||
creates: /usr/local/mysql-5.7.31-linux-glibc2.12-x86_64 |
||||
- name: 重命名文件夹 |
||||
ansible.builtin.command: |
||||
cmd: mv /usr/local/mysql-5.7.31-linux-glibc2.12-x86_64 /usr/local/mysql |
||||
creates: /usr/local/mysql |
||||
when: |
||||
- not mysqld.stat.exists |
||||
- name: 创建用户和用户组 |
||||
block: |
||||
- name: 创建用户组mysql |
||||
ansible.builtin.group: |
||||
name: mysql |
||||
system: yes |
||||
- name: 创建用户mysql |
||||
ansible.builtin.user: |
||||
name: mysql |
||||
group: mysql |
||||
system: yes |
||||
create_home: no |
||||
home: /usr/local/mysql |
||||
shell: /sbin/nologin |
||||
- name: 创建MySQL配置文件 |
||||
ansible.builtin.copy: |
||||
src: /opt/offline_cdh/my.cnf |
||||
dest: /etc/my.cnf |
||||
remote_src: yes |
||||
- name: 创建MySQL目录并更新权限 |
||||
ansible.builtin.file: |
||||
path: "{{ item.path }}" |
||||
state: "{{ item.state }}" |
||||
recurse: "{{ item.recurse }}" |
||||
owner: mysql |
||||
group: mysql |
||||
loop: |
||||
- { path: /usr/local/mysql, state: directory, recurse: yes} |
||||
- { path: /data/mysql, state: directory, recurse: yes } |
||||
- { path: /data/log/mysql, state: directory, recurse: yes } |
||||
- { path: /data/log/mysql/mysql.err, state: touch, recurse: no } |
||||
- { path: /data/log/mysql/slow.log, state: touch, recurse: no } |
||||
- name: 取得MySQL的密码 |
||||
command: /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql |
||||
register: mysqld_output |
||||
- name: 安装Python-MySQL客户端 |
||||
ansible.builtin.yum: |
||||
name: MySQL-python |
||||
state: present |
||||
- name: 配置MySQL服务 |
||||
block: |
||||
- name: 修改服务文件 |
||||
ansible.builtin.lineinfile: |
||||
regexp: "{{ item.regexp }}" |
||||
line: "{{ item.line }}" |
||||
path: /usr/local/mysql/support-files/mysql.server |
||||
loop: |
||||
- { regexp: "^basedir=", line: basedir=/usr/local/mysql } |
||||
- { regexp: "^datadir=", line: datadir=/data/mysql } |
||||
- name: 安装服务脚本到系统目录 |
||||
ansible.builtin.copy: |
||||
src: /usr/local/mysql/support-files/mysql.server |
||||
dest: /etc/init.d/mysql |
||||
remote_src: yes |
||||
mode: 0755 |
||||
- name: 设置mysql服务默认启动 |
||||
ansible.builtin.service: |
||||
name: mysql |
||||
state: restarted |
||||
sleep: 5 |
||||
enabled: yes |
||||
- name: 修改MySQL权限表使临时密码生效 |
||||
ansible.builtin.shell: | |
||||
cd /usr/local/mysql |
||||
expect <<EOF |
||||
spawn ./bin/mysql --user=root -p |
||||
expect "Enter password:" |
||||
send "{{ mysqld_output.stderr | regex_search('(?<=generated for root@localhost: ).*$', multiline=True) }}\n" |
||||
expect "mysql>" |
||||
send "set password=password('{{ mysql_pass }}');grant all privileges on *.* to root@'%' identified by '{{ mysql_pass }}';flush privileges;\n" |
||||
expect "mysql>" |
||||
send "quit;\n" |
||||
exit |
||||
EOF |
||||
- name: 创建hive元数据库和cm监控数据库 |
||||
community.mysql.mysql_db: |
||||
login_user: root |
||||
login_password: "{{ mysql_pass }}" |
||||
login_unix_socket: /usr/local/mysql/mysql.sock |
||||
name: "{{ item }}" |
||||
encoding: utf8 |
||||
collation: utf8_general_ci |
||||
loop: |
||||
- hive_metastore |
||||
- amon |
Loading…
Reference in new issue