Ansible: MySQL рдореЙрдбреНрдпреВрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ; рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддрд╛ рд╣реИред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 29 рд╕рд┐рддре░ 2013  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: ansible/ansible

рд╕рдВрд╕реНрдХрд░рдг:

  • рдЙрддреНрддрд░: 1.3.2
  • рдкрд╛рдпрдерди: 2.7
  • рдУрдПрд╕: рдбреЗрдмрд┐рдпрди 7 (рдЙрддреНрддрд░рджрд╛рдпреА рдореЗрдЬрдмрд╛рди), рд╕реЗрдВрдЯреЛрд╕ 6.4 (рдХреНрд▓рд╛рдЗрдВрдЯ), рдбреЗрдмрд┐рдпрди рдЕрд╕реНрдерд┐рд░ (рдХреНрд▓рд╛рдЗрдВрдЯ)
  • MySQL: mysql-5.5.30, Amariadb-5.5.33a-MariaDB

рд╡рд┐рдзрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

рдореИрдВрдиреЗ Ansible рдХреЛ рдирд┐рдореНрди рддрд░реАрдХреЗ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛:

 TARGET="/tmp/ansible01"
 sudo apt-рдкрд╛рдпрдерди-рд╕реЗрдЯрдЕрдкрдЯреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
 sudo easy_install virtualenv
 cd $TARGET && virtualenv ansible
 рд╕реНрд░реЛрдд $TARGET/ansible/bin/active
 рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд ansible

рд╡рд┐рд╡рд░рдг:

рдЗрд╕ рдкреНрд▓реЗрдмреБрдХ (рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╕реЗ рдХреЙрдкреА/рдкреЗрд╕реНрдЯ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ mysql рдХреНрд╡реЗрд░реА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред

 - рдирд╛рдо: рдЧреИрд▓реЗрд░рд╛ рдпреВрдЬрд░ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдХрд░рдирд╛
 mysql_user: login_user = {{mysql_user}} login_password = {{mysql_password}} рдирд╛рдо = {{galera_user}} рдкрд╛рд╕рд╡рд░реНрдб = {{galera_password}} рд░рд╛рдЬреНрдп = рд╡рд░реНрддрдорд╛рди рдирд┐рдЬреА = *ред *: рд╕рднреА

рдлреЗрдВрдХреА рдЧрдИ рддреНрд░реБрдЯрд┐:

REMOTE_MODULE mysql_user login_user=root login_password=рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдирд╛рдо=рдПрд▓реНрд╡рд┐рд╕ рдкрд╛рд╕рд╡рд░реНрдб=рд╡рд╕рдВрдд рд░рд╛рдЬреНрдп=рд╡рд░реНрддрдорд╛рди рдирд┐рдЬреА=*.*:рд╕рднреА
 рдШрд╛рддрдХ: [c6-4] => рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓: рдЯреНрд░реЗрд╕рдмреИрдХ (рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХреЙрд▓ рдЕрдВрддрд┐рдо):
 рдлрд╝рд╛рдЗрд▓ "/root/.ansible/tmp/ansible-1380442867.96-101659379289717/mysql_user", рд▓рд╛рдЗрди 1348, рдореЗрдВ
 рдореБрдЦреНрдп()
 рдлрд╝рд╛рдЗрд▓ "/root/.ansible/tmp/ansible-1380442867.96-101659379289717/mysql_user", рд▓рд╛рдЗрди 405, рдореБрдЦреНрдп рдореЗрдВ
 рдкрд░рд┐рд╡рд░реНрддрд┐рдд = user_mod (рдХрд░реНрд╕рд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рд╣реЛрд╕реНрдЯ, рдкрд╛рд╕рд╡рд░реНрдб, рдирд┐рдЬреА)
 рдлрд╝рд╛рдЗрд▓ "/root/.ansible/tmp/ansible-1380442867.96-101659379289717/mysql_user", рд▓рд╛рдЗрди 188, user_mod рдореЗрдВ
 рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░_рд░реЗрд╡реЛрдХ (рдХрд░реНрд╕рд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рд╣реЛрд╕реНрдЯ, db_table, рдЕрдиреБрджрд╛рди_рд╡рд┐рдХрд▓реНрдк)
 рдлрд╝рд╛рдЗрд▓ "/root/.ansible/tmp/ansible-1380442867.96-101659379289717/mysql_user", рд▓рд╛рдЗрди 263, рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдореЗрдВ
 рдХрд░реНрд╕рд░.рдирд┐рд╖реНрдкрд╛рджрди (рдХреНрд╡реЗрд░реА)
 рдлрд╝рд╛рдЗрд▓ "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", рд▓рд╛рдЗрди 173, рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ
 self.errorhandler(self, exc, value)
 рдлрд╝рд╛рдЗрд▓ "/usr/lib64/python2.6/site-packages/MySQLdb/connections.py", рд▓рд╛рдЗрди 36, рдбрд┐рдлреЙрд▓реНрдЯрдПрд░рд░рд╣реИрдВрдбрд▓рд░ рдореЗрдВ
 рдПрд░рд░рдХреНрд▓рд╛рд╕ рдмрдврд╝рд╛рдПрдБ, рдПрд░рд░рд╡реИрд▓реНрдпреВ
 _mysql_exceptions.OperationalError: (1045, "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ 'рд░реВрдЯ' @ 'рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ' рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡реЗрд╢ рдирд┐рд╖реЗрдз (рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ: рд╣рд╛рдБ)")


 рдШрд╛рддрдХ: рд╕рднреА рд╣реЛрд╕реНрдЯ рдкрд╣рд▓реЗ рд╣реА рд╡рд┐рдлрд▓ рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВ -- рдЧрд░реНрднрдкрд╛рдд --

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 [рд░реВрдЯ@c6-4 ~]# mysql mysql -e "рд╣реЛрд╕реНрдЯ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛;" | рдЧреНрд░реЗрдк рдПрд▓реНрд╡рд┐рд╕
 | рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ | рдПрд▓реНрд╡рд┐рд╕ |

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣ рдПрдХ MySQL рдореЙрдбреНрдпреВрд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рд╢реНрди рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ (рд╢рд╛рдпрдж my.cnf, рдЖрджрд┐ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ), рдЕрдЧрд░ рдЖрдк рдХреБрдЫ рдорджрдж рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдХреГрдкрдпрд╛ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рд╕реЗ рд░реБрдХреЗрдВред

рд╕рдмрдХ рд╕реАрдЦрд╛: рдмрд┐рдирд╛ рд╕реЛрдЪреЗ рд╕рдордЭреЗ рдбреЙрдХреНрд╕ рд╕реЗ рдХреЙрдкреА/рдкреЗрд╕реНрдЯ рди рдХрд░реЗрдВред
рдЖрдиреЗ рд╡рд╛рд▓реА рдкреАрдврд╝рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП:

рдореИрдВрдиреЗ рдЗрд╕ рдХрд╛рд░реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ mysql рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ 'рд░реВрдЯ' рдХрд╛ рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рд╣реИ:

 - рдирд╛рдо- рдирд╛рдо: MySQL рд░реВрдЯ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдХрд░рдирд╛
 mysql_user: рдирд╛рдо = рд░реВрдЯ рдкрд╛рд╕рд╡рд░реНрдб = {{mysql_password}} рдирд┐рдЬреА = *ред *: рд╕рднреА рд░рд╛рдЬреНрдп = рд╡рд░реНрддрдорд╛рди

рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдиреЗ 'рд░реВрдЯ' рдХреА рдЕрдиреБрджрд╛рди рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рд░реЛрдХ рджрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдирдП рдмрдирд╛рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдирд┐рдЬреА рджреЗрдиреЗ рдХреЗ рдЕрдЧрд▓реЗ рдмрд┐рдЯ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ ...

рднрд╛рдбрд╝ рдореЗрдВ рдЬрд╛рдУ, рдореЗрд░реЗ рд╕рд╛рде рднреА рдРрд╕рд╛ рд╣реА рд╣реБрдЖ рдерд╛ред рдбреЙрдХреНрд╕ рдХреЛ рдпрд╣рд╛рдВ ASAP рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЕрдм рдореБрдЭреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдареАрдХ рдХрд░рдирд╛ рд╣реИ :(

рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗ рдЧрдпрд╛ рдХрд┐ рдореМрдЬреВрджрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░ рдХреБрдЫ рдХреЙрд▓ рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдареАрдХ рдХрд╛рдо рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рд╣реА рдкреНрд░рдорд╛рдг-рдкрддреНрд░ рдХреЗ рд╕рд╛рде рдирдП рдмрдирд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ ....
рдЗрд╕реЗ рддрдм рддрдХ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рддрдХ рдХрд┐ рдбреЙрдХреНрд╕ рддрдп рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреЗ рдФрд░ mysql_user рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдХ рд░реЛрдХрдерд╛рдо рддрдВрддреНрд░ рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП !!!

рдпрд╣ рдХрдИ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рддреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдвреВрдВрдврдирд╛ рдпрд╛ рдареАрдХ рдХрд░рдирд╛ рдмреЛрдЭрд┐рд▓ рд╣реИред

рдЕрдЧрд░ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ priv=*.*:ALL рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдиреБрджрд╛рди рдХреЛ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рддреЛ рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рднреА рдЗрд╕реЗ рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдПрдХ рдмрдбрд╝реА рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд╕рд╛рде рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдЕрдиреБрджрд╛рди рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдЫреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ) рдпрд╛ рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЕрдЧрд░ рдЙрд╕реЗ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рдЕрдиреБрджрд╛рди рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╢реЗрд╖ рдирд╣реАрдВ рд╣реИрдВ ...

рдореИрдиреНрдпреБрдЕрд▓ рдлрд┐рдХреНрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде mysql рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рд╣реИ:
--skip-grant-tables

рдФрд░ mysql рдХрдорд╛рдВрдб рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ (рдиреЛрдЯ: GRANT ... ALL .. рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЧреНрд░рд╛рдВрдЯ рдЯреЗрдмрд▓ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ):

UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

cowboy picture cowboy  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

renaudguerin picture renaudguerin  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jiwong picture jiwong  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

adamprato picture adamprato  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

robbwagoner picture robbwagoner  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ