一、實驗環境
系統環境 | IP地址 | hostname | 角色 |
---|---|---|---|
redhat7.2 | 172.25.27.1 | controller | 控制節點 、salt-minion |
redhat7.2 | 172.25.27.2 | comput | 計算節點 、salt-miniom |
redhat7.2 | 172.25.27.3 | server3 | salt-master |
二、SaltStack安裝與配置
請參考 : 自動化運維工具SaltStack詳細部署及用SaltStack實現自動部署lamp架構
三、部署開始
[root@server3 ~]# mkdir -p /srv/salt/controller/files
[root@server3 ~]# mkdir -p /srv/salt/comput/files
[root@server3 ~]# mkdir -p /srv/salt/chrony/files
[root@server3 ~]# mkdir -p /srv/salt/pkg
1.controller
controller服務預安裝腳本
[root@server3 ~]# cd /srv/salt/controller
[root@server3 controller]# vim files/mitaka.repo
[mitaka]
name=mitaka
baseurl=http://172.25.27.250/mitaka/mitaka/
gpgcheck=0
[root@server3 salt]# vim pkg/controller.sls
controller:
pkg.installed:
- pkgs:
- chrony
- python-openstackclient
- mariadb
- mariadb-server
- python2-PyMySQL
- rabbitmq-server
- memcached
- python-memcached
- install
- openstack-keystone
- httpd
- mod_wsgi
- openstack-glance
- openstack-nova-api
- openstack-nova-conductor
- openstack-nova-console
- openstack-nova-novncproxy
- openstack-nova-scheduler
- nstall
- openstack-neutron
- openstack-neutron-ml2
- openstack-neutron-linuxbridge
- ebtables
controller服務安裝腳本
[root@server3 salt]# vim controller/install.sls
install_pkgs:
file.managed:
- name: /etc/yum.repos.d/mitaka.repo
- source: salt://controller/files/mitaka.repo
- user: root
- group: root
- mode: 644
include:
- pkg.controller
/etc/chrony.conf:
file.managed:
- source: salt://controller/files/chrony.conf
/etc/my.cnf.d/openstack.cnf:
file.managed:
- source: salt://controller/files/openstack.cnf
/etc/sysconfig/memcached:
file.managed:
- source: salt://controller/files/memcached
/etc/keystone/keystone.conf:
file.managed:
- source: salt://controller/files/keystone.conf
/etc/httpd/conf/httpd.conf:
file.managed:
- source: salt://controller/files/httpd.conf
/etc/httpd/conf.d/wsgi-keystone.conf:
file.managed:
- source: salt://controller/files/wsgi-keystone.conf
/admin-openrc:
file.managed:
- source: salt://controller/files/admin-openrc
/demo-openrc:
file.managed:
- source: salt://controller/files/demo-openrc
/etc/glance/glance-api.conf:
file.managed:
- source: salt://controller/files/glance-api.conf
/etc/glance/glance-registry.conf:
file.managed:
- source: salt://controller/files/glance-registry.conf
/etc/nova/nova.conf:
file.managed:
- source: salt://controller/files/nova.conf
/etc/neutron/neutron.conf:
file.managed:
- source: salt://controller/files/neutron.conf
/etc/neutron/plugins/ml2/ml2_conf.ini:
file.managed:
- source: salt://controller/files/ml2_conf.ini
/etc/neutron/plugins/ml2/linuxbridge_agent.ini:
file.managed:
- source: salt://controller/files/linuxbridge_agent.ini
/etc/neutron/dhcp_agent.ini:
file.managed:
- source: salt://controller/files/dhcp_agent.ini
/etc/neutron/metadata_agent.ini:
file.managed:
- source: salt://controller/files/metadata_agent.ini
/etc/nova/nova.conf:
file.managed:
- source: salt://controller/files/nova.conf
controller服務啓動腳本
[root@server3 salt]# vim controller/servies.sls
include:
- controller.install
Sync_Host:
file.managed:
- name: /etc/hosts
- source: salt://controller/files/hosts
- user: root
- group: root
- mode: 644
stop_selinux_firewalld:
file.managed:
- name: /tmp/stop_firewalled.sh
- source: salt://controller/files/stop_firewalled.sh
- mode: 755
cmd.run:
- name: cd /tmp && ./stop_firewalled.sh
ntp_running:
service.running:
- name: chronyd
- enable: True
- watch:
- file: /etc/chrony.conf
sync_time:
cmd.run:
- name: chronyc sources
httpd-running:
service.running:
- name: httpd
- enable: true
- watch:
- file: /usr/local/apache/conf/httpd.conf
mariadb-running:
service.running:
- name: mariadb
- enable: true
。。。
暫時寫到這裏,只完成了九牛一毛,後續再完善