2017-11-10 2 views
0

salt를 사용하여 실행중인 MariaDB 인스턴스의 복제본을 설정하려고합니다.소금 상태를 사용하는 MariaDB 복제가 없습니다.

{% if pillar.get('REPLICATION_SOURCE_IP') and pillar.get('REPLICATION_SOURCE_PORT') %} 

replication-set-gtid: 
    mysql_query.run: 
    - database: mysql 
    - query: | 
     set @MY_GTID_EXEC = @@GLOBAL.GTID_EXECUTED; 
     RESET MASTER; 
     set GLOBAL GTID_PURGED = @MY_GTID_EXEC; 

replication-connect-to-master: 
    mysql_query.run: 
    - database: mysql 
    - query: | 
     CHANGE MASTER TO MASTER_HOST='{{pillar['REPLICATION_SOURCE_IP']}}', 
     MASTER_PORT={{pillar['REPLICATION_SOURCE_PORT']}}, 
     MASTER_USER='{{pillar['REPLICATION_REPLICA_USERNAME']}}', 
     MASTER_PASSWORD='{{pillar['REPLICATION_REPLICA_PASSWORD']}}', 
     MASTER_AUTO_POSITION=1, 
     MASTER_CONNECT_RETRY=15 

replication-start-replica: 
    mysql_query.run: 
    - database: mysql 
    - query: "START SLAVE" 

wait-for-slave: 
    cmd.run: 
    - name: until [[ $(mysql -P {{pillar['PORT']}} -e "show global status like 'slave_running'" mysql | grep 'Slave_running' | cut -f 2) == 'ON' ]]; do sleep 1; done 

{% endif %} 

나는 소금 미니언 로그에서 다음과 같은 오류를 받고 있어요 : 여기 내 코드입니다

sudo yum install MariaDB-client -y 
sudo yum install python-devel mysql-devel -y 
sudo yum -y install gcc gcc-c++ kernel-devel 
sudo yum -y install python-devel libxslt-devel libffi-devel openssl-devel 
sudo pip install MySQL-python 

:

[ERROR ] State 'mysql_query.run' was not found in SLS 'mariadb-10_1_00-replication-prepare-replica' 
Reason: 'mysql_query' __virtual__ returned False 

내가 사용하고있어 MariaDB 이미지는 이러한 종속성을 포함 이 소금 문제를 일으킬 수있는 것이 무엇인지 확신 할 수 없습니다. 어떤 제안을 해주시겠습니까?

답변

0

잘못된 pip 패키지를 사용하고 계신 것 같습니다. 내가 MySQL-python이없는 내 시스템에, 난 그냥 (당신은 단지 그들 중 하나를해야 할 수도 있습니다)이 있습니다

mysqlclient==1.3.7 
PyMySQL==0.7.2 

우분투 16.04에, 그들은 패키지에서 설치됩니다

ii python-mysqldb      1.3.7-1build2            
ii python-pymysql      0.7.2-1ubuntu1 

나는 생각한다 비슷한 패키지를 핏을 통해 설치하지 않고도 Fedora에서 찾을 수 있습니다.

관련 문제